这个问题已经在这里有一个答案:
- 在批处理文件中沉睡 30个回答
如何获得Windows批处理脚本,等待几秒钟?
sleep
和wait
似乎不工作(不能识别的命令)。
这个问题已经在这里有一个答案:
如何获得Windows批处理脚本,等待几秒钟?
sleep
和wait
似乎不工作(不能识别的命令)。
你可以试试
ping -n XXX 127.0.0.1 >nul
其中XXX是要等待的秒数,加一。
我不知道为什么这些命令没有为你工作,但你也可以尝试超时
timeout <delay in seconds>
timeout /t 10 /nobreak > NUL
/t
指定时间,以秒等待
/nobreak
如果你按一个键(除CTRL-C)将不会中断超时
> NUL
将抑制该命令的输出
要等待10秒:
choice /T 10 /C X /D X /N
微软有一个休眠功能可以直接调用。
Usage: sleep time-to-sleep-in-seconds
sleep [-m] time-to-sleep-in-milliseconds
sleep [-c] commited-memory ratio (1%-100%)
你只能说睡眠1为例,为您的批处理脚本1秒的睡眠。
IMO平是有点这个用例黑客攻击的。
对于纯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 SET
和HELP CALL
信息。
在Windows 2003的资源工具包具有sleep
批处理文件。 如果你向上移动到PowerShell中 ,你可以使用:
Start-Sleep -s <time to sleep>
或类似的东西。
我靠的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
嘿,视窗是呃... ...有趣。 这工作:
choice /T 1 /d y > NUL
choice
给出一个提示,询问你是或否。 /dy
使得它选择yes。 /t 1
使得它键入它之前等待一秒钟。 > NUL
南瓜输出。
我只写我自己的睡眠这称为Win32的 睡眠API函数 。
RJLsoftware有一个小工具,叫做DelayExec.exe 。 有了这个,你可以执行批量和Windows注册表(在... /.../的Windows注册表运行最有用的)任何程序延迟启动。
用法示例:
delayexec "C:\WINDOWS\system32\notepad.exe" 10
或作为休眠命令:
delayexec "nothing" 10
我个人使用Perl的一个班轮 :
perl -e "sleep 10;"
对于10秒的等待。 机会是你已经有一个开发机器上安装Perl作为git的安装的一部分; 如果不是你将必须安装它,例如,从ActiveState公司或草莓 ,但它是我安装反正那些东西之一。
或者,你可以安装一个睡眠命令的GnuWin32 。