2015-06-05 5 views
5

मैं बैच फ़ाइल को 0.5 या 0.25 सेकंड के लिए प्रतीक्षा करना चाहता हूं।
मैंने पहले ही timeout /t 0.5 का प्रयास किया है लेकिन यह काम नहीं कर रहा है।
@echo off color a cls :top echo %random% timeout /t 0.5 echo %random% goto topबैच फ़ाइल को दूसरी सेकंड के अंशों के लिए कैसे प्रतीक्षा करें?

उत्तर

0

इस प्रयास करें::

यह कुछ ऐसा है ping 1.1.1.1 -n 1 -w 250> nul 250 एमएस में समय है।

+0

यहाँ स्पष्ट करने के लिए: पता जवाब नहीं चाहिए कॉल किये जाने के लिए, नहीं तो '-w' पैरामीटर लागू नहीं होता। – Joey

+2

'पिंग' इस तरह से कम से कम 500ms रोकता है। 500 से कम किसी भी मूल्य का उपयोग करने के परिणामस्वरूप अभी भी आधा दूसरा विराम होता है। – rojo

+0

@rojo: जानना अच्छा है, thx! – MichaelS

2

TIMEOUT केवल पूरे सेकंड की वृद्धि में काम करता है।

अन्य तृतीय-पक्ष "नींद" निष्पादन योग्य हैं जिन्हें आप डाउनलोड कर सकते हैं।

वैकल्पिक रूप से, आप वीबीस्क्रिप्ट में Sleep विधि का उपयोग कर सकते हैं। यह मानों को मिलीसेकंड के रूप में स्वीकार करता है। यहाँ एक सरल उदाहरण है (SLEEP.VBS पर सहेजें या आप चाहते हैं जो कुछ भी नाम):

ms = WScript.Arguments(0) 
WScript.Sleep ms 

फिर, अपने बैच फ़ाइल में 0.5 सेकंड की देरी के लिए इस तरह इसे कहते:

CSCRIPT SLEEP.VBS 500 
1

कुछ के लिए See this question सार्थक जानकारी। संक्षेप में, ping का उपयोग रोकने के लिए 500ms या उससे अधिक तक सीमित है। आप 250ms के लिए रुकने में सक्षम नहीं होंगे। सबसे अच्छा समाधान विंडोज स्क्रिप्टिंग होस्ट - वीबी स्क्रिप्ट या जेस्क्रिप्ट का उपयोग करना है।

बाहरी वीबीएस स्क्रिप्ट को कॉल करने से बचने के लिए आप इसे batch/JScript hybrid के साथ कर सकते हैं। इस उदाहरण को .bat एक्सटेंशन से सहेजें और इसे आज़माएं।

@if (@CodeSection == @Batch) @then 

@echo off 
setlocal 

for /L %%I in (10,-1,1) do (
    set /P "=%%I... "<NUL 
    call :pause 250 
) 

echo Done. 
goto :EOF 

:pause <ms> 
cscript /nologo /e:JScript "%~f0" "%~1" 
goto :EOF 

@end // end batch/begin JScript hybrid code 
WSH.Sleep(WSH.Arguments(0)); 
संबंधित मुद्दे