Windows的截图工具可以捕获屏幕,但有时我想在5秒后捕获屏幕,例如拍摄网络摄像头显示的图像.(例如,运行脚本并对相机微笑).
我的问题是:如何在批处理文件中睡5秒?
是否有可用于在Windows批处理文件中并行执行多个进程的工具?我找到了一些有趣的Linux工具(并行和PPSS),但是,我需要一个适用于Windows平台的工具.
额外奖励:如果该工具还允许在多台机器之间轻松分配流程,并通过PsExec远程运行流程,那将会很棒.
示例:我希望在以下for循环中使用它
for %F in (*.*) do processFile.exe %F
Run Code Online (Sandbox Code Playgroud)
有限数量的processFile.exe实例并行运行以利用多核CPU.
有一个简单的Windows批处理文件,它运行多个应用程序实例:
start app.exe param1
start app.exe param2
Run Code Online (Sandbox Code Playgroud)
有没有办法同时异步运行它们(上面做的)并等待它们完成执行其他操作 - 类似于C#
Task.WhenAll(tasksList.ToArray());
/* Process tasksList.Result */
Run Code Online (Sandbox Code Playgroud)
?
/ wait开关在这里没有帮助,如果特定实例仍在运行,可能会进行一些轮询.
我需要并行执行 Python 脚本,因此我使用以下批处理文件:
start python C:\myfolder\1.py
start python C:\myfolder\2.py
start python C:\myfolder\3.py
Run Code Online (Sandbox Code Playgroud)
它工作正常,但现在我需要在上述前三个脚本完成后并行运行三个脚本。如何在同一个批处理文件中指定它?
如何在批处理脚本中并行执行一些任务并等待它们?
command1;
# command3, command4 and command5 should execute in sequence say task1
# command6, command7 and command8 should execute in sequence say task2
# both task1 and task2 should run independently
command3; command4; command5 | command6; command7; command8;
# should execute only after the above parallel tasks are completed
command9;
Run Code Online (Sandbox Code Playgroud)
作为概念验证,我尝试了类似的方法,但是它不起作用:
echo "Starting"
start /wait wait20.bat
start /wait wait40.bat
echo "Finishing"
Run Code Online (Sandbox Code Playgroud)
wait20.bat 看起来像:
echo "starting 20 seconds job"
timeout 20
echo "finishing 20 seconds job"
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?