delay a batch file in under a second?

后端 未结 6 1896
渐次进展
渐次进展 2020-12-01 18:59

Is there any way to delay a batch file in under a second, for example 10 milliseconds?

I have tried to write this:

ping localhost -n 1 -w 10
<         


        
6条回答
  •  粉色の甜心
    2020-12-01 19:51

    pathping 127.0.0.1 -n -q 1 -p 100 >nul
    

    Here was a discussion about proper wait/delay in milliseconds.According to the last posts pathping should do the work for the milliseconds.

    with mshta (this will wait 500 milliseconds):

    start "" /wait /min /realtime mshta "javascript:setTimeout(function(){close();},500)"
    

    Another way with selfcompiled .NET executable:

    @if (@X)==(@Y) @end /* JScript comment
    @echo off
    setlocal
    ::del %~n0.exe /q /f
    ::
    :: For precision better call this like
    :: call waitMS 500
    :: in order to skip compilation in case there's already built .exe
    :: as without pointed extension first the .exe will be called due to the ordering in PATEXT variable
    ::
    ::
    for /f "tokens=* delims=" %%v in ('dir /b /s /a:-d  /o:-n "%SystemRoot%\Microsoft.NET\Framework\*jsc.exe"') do (
       set "jsc=%%v"
    )
    
    if not exist "%~n0.exe" (
        "%jsc%" /nologo /w:0 /out:"%~n0.exe" "%~dpsfnx0"
    )
    
    
    %~n0.exe %*
    
    endlocal & exit /b %errorlevel%
    
    
    */
    
    
    import System;
    import System.Threading;
    
    var arguments:String[] = Environment.GetCommandLineArgs();
    function printHelp(){
        Console.WriteLine(arguments[0]+" N");
        Console.WriteLine(" N - milliseconds to wait");
        Environment.Exit(0);    
    }
    
    if(arguments.length<2){
        printHelp();
    }
    
    try{
        var wait:Int32=Int32.Parse(arguments[1]);
        System.Threading.Thread.Sleep(wait);
    }catch(err){
        Console.WriteLine('Invalid Number passed');
        Environment.Exit(1);
    }
    

提交回复
热议问题