Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
Windows的Snipping工具可以捕捉屏幕,但有时我想在五秒钟后捕捉屏幕,例如拍摄网络摄像头显示的图像。(例如,运行脚本并对着镜头微笑。)
如何在批处理文件中休眠5秒?
当前回答
我编写了一个powerbasic程序wait.exe,在批处理文件中向它传递一个毫秒参数
wait 3000
system('c:/windows/system32/SnippingTool.exe')
EXE的代码:
FUNCTION PBMAIN()
c$ = Command$
s! = Val(c$)*1000
Sleep s!
END FUNCTION
其他回答
我试图在msbuild任务中执行此操作,但由于I/O重定向,选择和超时都不起作用。
我最终使用了sleep.exehttp://sourceforge.net/projects/unxutils,这很好,因为它不需要任何安装,而且很小。
尝试选择:
<Target Name="TestCmd">
<Exec Command="choice /C YN /D Y /t 5 " />
</Target>
结果如下:
TestCmd:
choice /C YN /D Y /t 5
EXEC : error : The file is either empty or does not contain the valid choices. [test.proj]
[Y,N]?
C:\test.proj(5,9): error MSB3073: The command "choice /C YN /D Y /t 5 " exited with code 255.
尝试超时:
<Target Name="TestCmd">
<Exec Command="timeout /t 5 " />
</Target>
结果如下:
TestCmd:
timeout /t 5
EXEC : error : Input redirection is not supported, exiting the process immediately. [test.proj]
C:\test.proj(5,7): error MSB3073: The command "timeout /t 5 " exited with code 1.
旁白:
我实际上在使用<Exec Command=“sleep 2&dbghost.exe”/>,因为我正在并行执行dbghostexe多次,它基于当前的时间(以秒为单位)创建临时文件/数据库-这当然意味着如果启动多个实例,每个实例都使用相同的临时名称。我最初尝试使用MSBuild Extension Pack Thread.Sleep命令,但它似乎(通常)运行Sleep任务很好,但随后在所有线程中同时启动<exec>任务,当然dbghost.exe会因冲突而失败。到目前为止,使用sleep.exe似乎更可靠。
一种黑客是(错误地)使用ping命令:
ping 127.0.0.1 -n 6 > nul
说明:
ping是一个发送ping请求的系统实用程序。ping在所有版本的Windows上都可用。127.0.0.1是本地主机的IP地址。此IP地址保证始终解析、可访问并立即响应ping。-n 6指定将有6个ping。每个ping之间有一个1s的延迟,因此对于5s的延迟,您需要发送6个ping。>nul通过将ping重定向到nul来抑制ping的输出。
我最简单的方法是:
下载Sleep.exehttp://www.sleepcmd.com/..exe文件应与您编写的程序位于同一文件夹中!
这可以通过批处理文件中的两行简单代码来完成:在%temp%文件夹中写一个临时.vbs文件,并调用它:
echo WScript.Sleep(5000) >"%temp%\sleep.vbs"
cscript "%temp%\sleep.vbs"
我编写了一个powerbasic程序wait.exe,在批处理文件中向它传递一个毫秒参数
wait 3000
system('c:/windows/system32/SnippingTool.exe')
EXE的代码:
FUNCTION PBMAIN()
c$ = Command$
s! = Val(c$)*1000
Sleep s!
END FUNCTION