लिनक्स वॉच कमांड का विंडोज एनालॉग क्या है?


58

मैं एक विंडोज प्रोग्राम / स्क्रिप्ट / कमांड लाइन फ़ंक्शन की तलाश कर रहा हूं जो लिनक्स के watchप्रोग्राम की तरह काम करता है ।

watch समय-समय पर किसी अन्य प्रोग्राम को कॉल करता है / जो कुछ भी दिखाता है और परिणाम दिखाता है, जो कि आउटपुट फाइल या हर सेकंड के समान ताज़ा करने के लिए बहुत अच्छा है:

watch cat my-output.txt

या, अधिक शक्तिशाली:

watch grep "fail" my-output.txt

मैंने इसके लिए साइबरविन की लाइब्रेरी में देखा है, लेकिन यह मौजूद नहीं है।

जवाबों:


14

watchCygwin में उपलब्ध है, यहाँprocps सूचीबद्ध पैकेज के रूप में (यह जानकारी वेबसाइट पर, यहाँ पैकेज खोज के माध्यम से मिल सकती है )। मुझे नहीं लगता कि यह पैकेज डिफ़ॉल्ट साइबरविन सेटअप द्वारा स्थापित किया गया है, लेकिन यह एक है जिसे मैं आमतौर पर वॉच कमांड उपलब्ध करने के लिए नए इंस्टॉल्स पर चुनता हूं।

पैकेज में औजारों का स्थान आमतौर पर लिनक्स वितरण में पैकेज नामों से मेल खाता है (पैकेज युक्त watchडेबियन और उबंटू पर भी खरीदता है) इसलिए यदि सिग्विन पैकेज खोज फ़ंक्शन आपको विफल करता है, तो लिनक्स वितरण से / के लिए जानकारी सुराग दे सकती है।


47

खुद लिखिए। मान लें कि फ़ाइल watch.batमें निम्न शामिल हैं:

@ECHO OFF
:loop
  cls
  %*
  timeout /t 5 > NUL
goto loop

और उदाहरण के लिए इसके माध्यम से कॉल करें:

watch echo test

testहर 5 सेकंड में गूंजेंगे ।


@ कीलरोन: ध्यान दें कि आपका संपादन खराब था और मुझे इसे ठीक करना था। कृपया अधिक सावधान रहें।
स्कॉट

सरल लेकिन महान। केवल उस एकल आदेश के लिए साइबरविन स्थापित करने से बचा जाता है। विलेन डंक!
स्टेफ

28

पॉवरशेल में "जबकि" कमांड है। आप इसे लिनक्स में उपयोग कर सकते हैं:

जबकि (1) {your_command; नींद 5}

लिनक्स संस्करण:

जबकि सच है; अपना_कमांड करें; sleep5; किया हुआ

अन्य:

जबकि ($ सच) {netstat -an | 23560 का पता लगाना; नींद 5; दिनांक}


4
तुम सिर्फ उपयोग कर सकते हो while (1), क्योंकि 1सत्य है।
TheQuickBrownFox

1
मैंने यह भी पाया कि आप अंतिम कथन के रूप में "स्पष्ट" का उपयोग कर सकते हैं, इसलिए यह घड़ी की तरह अधिक व्यवहार करता है।
itmuckel

13

इसे पूरा करने के लिए एक सामान्य विंडोज कमांड ऑनलाइनर:

for /l %g in () do @( echo test & timeout /t 2 )

"इको टेस्ट" को उस कमांड से बदलें जिसे आप बार-बार चलाना चाहते हैं।


एक अच्छा, एक सरल लाइनर जो चाल करता है
user230910

6

मैंने यह करने के लिए जो आप देख रहे थे, उसे करने के लिए यह छोटा सा PowerShell मॉड्यूल लिखा। बस अंदर डाल दो

C:\Users\[username]\Documents\WindowsPowerShell\Modules\Watch

और import-module watchPowerShell में चलाएं ।


# ---- BEGIN SCRIPT
# Author:       John Rizzo
# Created:      06/12/2014
# Last Updated: 06/12/2014
# Website:      http://www.johnrizzo.net

function Watch {
    [CmdletBinding(SupportsShouldProcess=$True,ConfirmImpact='High')]
    param (
        [Parameter(Mandatory=$False,
                   ValueFromPipeline=$True,
                   ValueFromPipelineByPropertyName=$True)]
        [int]$interval = 10,

        [Parameter(Mandatory=$True,
                   ValueFromPipeline=$True,
                   ValueFromPipelineByPropertyName=$True)]
        [string]$command
    )
    process {
        $cmd = [scriptblock]::Create($command);
        While($True) {
            cls;
            Write-Host "Command: " $command;
            $cmd.Invoke();
            sleep $interval;
        }
    }
}

Export-ModuleMember -function Watch

# --- END SCRIPT

1
बहुत अच्छा लग रहा है, लेकिन मैं क्रिया Watch-Commandको एक उपनाम Watch( Set-Alias -Name Watch -item Watch-Command) के साथ क्रिया-संज्ञा प्रारूप (जैसे ) में होने के लिए प्रोत्साहित करूंगा ।
duct_tape_coder

6

यह है कि मैं इसे PowerShell में कैसे करूंगा:

while(1){ netstat -an|grep 1920;start-sleep -seconds 2;clear }

हालत while(1)समान है while true, अनिश्चित काल के लिए लूपिंग।


6

यह एक पॉवरशेल एक लाइनर है:

while ($true) { <your command here> | Out-Host; Sleep 5; Clear }

मैं Clearपहले डालूँगा।
15

यह इस बात पर निर्भर करता है कि आपकी कमांड चलने में कितना समय लेती है और फिर डिस्प्ले करने के लिए आउटपुट .... आप ऑर्डर बदल सकते हैं, लेकिन यह सामान्य विचार है
ErikW

3

उदाहरण के लिए, आप पिंग कमांड का उपयोग करने में देरी कर सकते हैं:

@echo off
:loop
  cls
  dir c:\temp
  REM 5000mS (5 sec) delay...
  ping 1.1.1.1 -n 1 -w 5000 >NUL
goto loop

2

मेरे पास एक ही समस्या थी जब किसी फ़ाइल की फ़ाइल आकार की जांच करने की आवश्यकता सक्रिय रूप से किसी अन्य प्रक्रिया द्वारा काम की जा रही थी। मैंने विंडोज पर घड़ी की कार्यक्षमता का क्लोन तैयार किया। संकलित निर्वासन के साथ-साथ स्रोत साइट पर उपलब्ध है।

विंडोज के लिए देखें


1

मैंने विंडोज़ के लिए एक वॉच कमांड बनाई, जिसे llwatch कहा जाता है।

कोड मेरी वेबसाइट landenlabs.com पर है

और GitHub पर भी

आपको दूसरों के लिए x64 प्रोग्राम और x32 देखने के लिए x64 का उपयोग करने की आवश्यकता हो सकती है। सुनिश्चित नहीं है कि picky विंडोज़ कैसी है।


यकीन नहीं हो रहा था कि यह डाउनवोटेड था ... वेलकम टू सुपर यूजर !
jpaugh

1

नींद की घड़ी के अलावा @harrymc ने क्या कहा

@ECHO OFF
:loop
  %*
  sleep 5
goto loop

./watch.bat npm रन टेस्ट

npm run test हर 5 सेकंड



-1

मैं जल्दी में था .... मैंने एक सुझाव का इस्तेमाल किया और इसे मेरे लिए काम करने के लिए थोड़ा बदल दिया:

/ l% g के लिए () do @ (इको टेस्ट और टाइमआउट / टी 2)

मैंने इसे बदल दिया:

के लिए / l% g में () do @ (test.bat & timeout / t 2)

और मैंने कमांड लाइन के साथ test.bat फ़ाइल बनाई। मेरे मामले में, यह था:

नेट समूह / डोमेन

मैंने पाया कि इको कमांड सिर्फ स्क्रीन पर प्रिंट होता है, लेकिन कमांड निष्पादित नहीं करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.