首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批处理脚本在winrs命令后停止执行。

批处理脚本在winrs命令后停止执行。
EN

Stack Overflow用户
提问于 2017-09-26 10:45:18
回答 1查看 1.2K关注 0票数 2

我有一个脚本,其中包含对winrs的调用,以便在用户指定的目标计算机上远程启动.exe的执行。

我需要以下功能:

  • 启动脚本
  • 提示用户输入目标PC的名称
  • winrs进入目标PC,执行.exe并告诉运行脚本的用户正在执行此操作。
  • 停止执行winrs,并告诉运行脚本的用户它已经完成。
  • 出口。
  • 我想要运行脚本的机器上的所有输出,而不希望在目标机器上显示任何活动。

我的代码如下:

代码语言:javascript
复制
@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,“终止shell?(y/n)”将被放置在我的日志文件中(但在cmd提示符中没有输出),然后我可以按"y“并进入,远程shell在其上退出,”终止批处理作业(Y/N)“出现在cmd提示符中,但是最后一条echo语句永远不会执行。

如何在运行.exe之后使远程shell自动关闭,并在执行脚本的人的提示下对脚本完成某种确认?

所有的帮助都很感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 10:58:01

您使用的是call,它执行一个新的cmd.exe窗口,并在该新窗口中运行winrs并退出。把它移开,它就能工作了。我在结尾添加了“暂停”,以防您通过双击运行批处理。

@echo关闭

代码语言:javascript
复制
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调用它就可以了,它应该调用它并返回到原来的提示符。

代码语言:javascript
复制
start winrs -r:%pcToReconnect% "C:\Path\To The\exe that I want\toExecute.exe" >> logfile.txt 2>>&1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46424334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档