Windows批处理:睡眠[复制]Windows批处理:睡眠[复制](Windows batch:

2019-05-13 09:04发布

这个问题已经在这里有一个答案:

  • 在批处理文件中沉睡 30个回答

如何获得Windows批处理脚本,等待几秒钟?

sleepwait似乎不工作(不能识别的命令)。

Answer 1:

你可以试试

ping -n XXX 127.0.0.1 >nul

其中XXX是要等待的秒数,加一。



Answer 2:

我不知道为什么这些命令没有为你工作,但你也可以尝试超时

timeout <delay in seconds>


Answer 3:

timeout /t 10 /nobreak > NUL

/t指定时间,以秒等待

/nobreak如果你按一个键(除CTRL-C)将不会中断超时

> NUL将抑制该命令的输出



Answer 4:

要等待10秒:

choice /T 10 /C X /D X /N


Answer 5:

微软有一个休眠功能可以直接调用。

    Usage:  sleep      time-to-sleep-in-seconds
            sleep [-m] time-to-sleep-in-milliseconds
            sleep [-c] commited-memory ratio (1%-100%)

你只能说睡眠1为例,为您的批处理脚本1秒的睡眠。

IMO平是有点这个用例黑客攻击的。



Answer 6:

对于纯cmd.exe的脚本,你可以使用这段代码,它返回秒hundreths当前时间。

:gettime
set hh=%time:~0,2%
set mm=%time:~3,2%
set ss=%time:~6,2%
set cc=%time:~-2%
set /A %1=hh*360000+mm*6000+ss*100+cc
goto :eof

然后,您可以在等待循环像这样使用它。

:wait
call :gettime wait0
:w2
call :gettime wait1
set /A waitt = wait1-wait0
if !waitt! lss %1 goto :w2
goto :eof

并把所有的拼在一起:

@echo off
setlocal enableextensions enabledelayedexpansion

call :gettime t1
echo %t1%
call :wait %1
call :gettime t2
echo %t2%
set /A tt = (t2-t1)/100
echo %tt%
goto :eof

:wait
call :gettime wait0
:w2
call :gettime wait1
set /A waitt = wait1-wait0
if !waitt! lss %1 goto :w2
goto :eof

:gettime 
set hh=%time:~0,2%
set mm=%time:~3,2%
set ss=%time:~6,2%
set cc=%time:~-2%
set /A %1=hh*360000+mm*6000+ss*100+cc
goto :eof

对于这里使用的命令的详细说明,请检查HELP SETHELP CALL信息。



Answer 7:

在Windows 2003的资源工具包具有sleep批处理文件。 如果你向上移动到PowerShell中 ,你可以使用:

Start-Sleep -s <time to sleep>

或类似的东西。



Answer 8:

我靠的JScript 。 我有这样一个JScript文件:

// This is sleep.js
WScript.Sleep( WScript.Arguments( 0 ) );

和一个批处理文件,我跑这里面的CScript (通常它%SystemRoot%\system32\cscript.exe

rem This is the calling inside a BAT file to wait for 5 seconds
cscript /nologo sleep.js 5000


Answer 9:

嘿,视窗是呃... ...有趣。 这工作:

choice /T 1 /d y > NUL

choice给出一个提示,询问你是或否。 /dy使得它选择yes。 /t 1使得它键入它之前等待一秒钟。 > NUL南瓜输出。



Answer 10:

我只写我自己的睡眠这称为Win32的 睡眠API函数 。



Answer 11:

RJLsoftware有一个小工具,叫做DelayExec.exe 。 有了这个,你可以执行批量和Windows注册表(在... /.../的Windows注册表运行最有用的)任何程序延迟启动。

用法示例:

delayexec "C:\WINDOWS\system32\notepad.exe" 10

或作为休眠命令:

delayexec "nothing" 10


Answer 12:

我个人使用Perl的一个班轮 :

perl -e "sleep 10;"

对于10秒的等待。 机会是你已经有一个开发机器上安装Perl作为git的安装的一部分; 如果不是你将必须安装它,例如,从ActiveState公司或草莓 ,但它是我安装反正那些东西之一。

或者,你可以安装一个睡眠命令的GnuWin32 。



文章来源: Windows batch: sleep [duplicate]