[英]Windows Batch File - Batch File stops executing mid way after a command that takes a while to complete
[英]Batch script stops executing after winrs command
我有一个脚本,其中包含对winrs的调用,以便在用户指定的目标计算机上远程启动.exe的执行。
我想要以下功能:
我的代码如下:
@echo off
echo -------------------------------------------------------
echo PLEASE ENTER PC NAME OF DISCONNECTED MACHINE
echo -------------------------------------------------------
SET /p pcToReconnect=
echo Attempting to contact Agent.
call winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1
echo Agent reconnected. Please allow ~5mins for your management console to update.
该代码一直执行到winrs调用为止,并确实在目标计算机上执行了.exe,但随后看来,远程shell仍然保持打开状态,此后什么也不做。
如果此时我按ctrl + c,则将“ Terminate the shell?(y / n)”放置在我的日志文件中(但cmd提示符中没有输出),然后可以按“ y”并输入,远程Shell退出并在cmd提示符中出现“终止批处理作业(Y / N)”,但是最后一个echo语句从不执行。
在运行.exe之后,如何使远程外壳程序自动关闭,并在执行该脚本的任何人的提示下回显某种形式的脚本确认的确认?
所有帮助表示赞赏!
您正在使用执行新cmd.exe
窗口并在该新窗口中运行winrs并退出的call
。 删除它,它将起作用。 我在末尾添加了暂停,以防您双击运行批处理。
@回声关闭
echo -------------------------------------------------------
echo PLEASE ENTER PC NAME OF DISCONNECTED MACHINE
echo -------------------------------------------------------
SET /p pcToReconnect=
echo Attempting to contact Agent.
winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1
echo Agent reconnected. Please allow ~5mins for your management console to update.
pause
编辑
经过一些分析,似乎该批处理正在等待程序完成,因此可以仅使用start调用它,然后应调用它并返回到原始提示。
start winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.