我需要同时在同一网络中的两台不同的PC上执行任务。如何通过主批处理文件在2台PC中触发单个批处理文件。
答案 0 :(得分:2)
当“同时”表示“加/减某些(dozend)秒”(取决于不同系统的时间差异)时,计划任务就可以了。
如果要同步(加上一些(dozend)毫秒,请使用waitfor
命令。(有关详细信息,请参阅waitfor /?
)。
注意,这不会在其他计算机上启动任何内容,它只会发送触发信号。如果另一端没有接收者(waitfor <same trigger string>
),则不会做任何事情)
示例:
Slave.bat(在其他计算机上运行):
@echo off
echo waiting for Signal to continue...
waitfor /t 300 StartNow
if %errorlevel%==0 (
echo Signal received, continuing.
goto :continue
)
echo Timeout, no Signal received.
Exit /b
:continue
echo I'm doing stuff now.
Master.bat
@echo off
echo sending Signal to all Computers in the Network...
REM slave.bat should be running now on other Computer(s)
REM because else they don't wait for the signal
waitfor /si StartNow
echo Signal sent.
要尝试,您还可以在同一台计算机上使用多个cmd
窗口,而不是使用不同的计算机。
答案 1 :(得分:0)
我看到了多种方法:
1)在Windows中创建计划任务(我假设您使用的是Windows)
2)使用一些远程执行技术,如sysseternals的psexec
3)启动程序并让它们等待通过网络发送的信号,也许已经足够检查共享驱动器上的某些文件了