2015-06-05 31 views

Odpowiedz

0

Spróbuj tego: ping 1.1.1.1 -n 1 -w 250> nul 250 jest czas w ms.

+0

Aby wyjaśnić tutaj: adres do ping nie musi odpowiadać, inaczej '-w' parametr nie ma zastosowania. – Joey

+2

'ping' użyte w ten sposób przerywa co najmniej 500ms. Używanie dowolnej wartości niższej niż 500 nadal powoduje półsekundową pauzę. – rojo

+0

@rojo: Dobrze wiedzieć, thx! – MichaelS

2

TIMEOUT działa tylko w krokach co sekundę.

Istnieją inne pliki wykonywalne "uśpienia" innych firm, które można pobrać.

Alternatywnie można użyć metody Sleep w języku VBScript. Przyjmuje wartości jako milisekundy. Oto prosty przykład (zapisz go SLEEP.VBS lub cokolwiek nazwę chcesz):

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

Następnie w pliku wsadowym nazwać tak przez 0,5 sekundowym opóźnieniem:

CSCRIPT SLEEP.VBS 500 
1

See this question dla niektórych wartościowe informacje. Podsumowując, użycie pauzy ping jest ograniczone do 500 ms lub więcej. Nie będziesz w stanie przerwać na 250ms. Najlepszym rozwiązaniem jest użycie Windows Scripting Host - VB Script lub JScript.

Możesz to zrobić za pomocą batch/JScript hybrid, aby uniknąć konieczności wywoływania zewnętrznego skryptu VBS. Zapisz ten przykład z rozszerzeniem .bat i wypróbuj go.

@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));