在Visual Studio的后期构建事件中运行交互式批处理

10

我有一个用vb.net写的程序。在编译之后,我想启动一个交互式批处理文件,执行远程的psexec命令。我该怎么做?这是我的发布生成事件:

call "$(ProjectDir)ExecOnGw.bat"

这是我的批处理文件,如果在普通命令提示符下运行,执行就可以了。

c:\Sysinternal\psexec.exe \\gateway "C:\Remotepath\mybatch.bat" -u mydomain\myuser -p ******
pause

这个批处理调用远程机器上的另一个批处理来执行某些操作,然后如果我想退出,就必须按下“q”和“Enter”键。在普通的命令提示符中,它可以正常运行。但在Visual Studio的后期构建事件中出现了问题。 帮帮我!


不确定为什么这被标记为 C#。已移除标签。 - tnw
2个回答

9

我之前使用过 start 命令来实现这个功能。我创建了一个简单的 pause.bat 文件来进行示范:

    @echo off
    pause Press Any Key
    exit

如果我把这个放在“post build”事件中,我会看到一个窗口很快就关闭了。
call pause.bat

如果我使用这个替代方案,我将得到一个第二个控制台窗口,在关闭前接受我的输入。
start "My Process" /D c:\batch /WAIT pause.bat

“start /WAIT” 正是我正在寻找的,惊讶这个答案被埋没了。 - Brock Hensley

0

这里是关于我们的技术开发环境的信息:

  • Microsoft Visual Studio Enterprise 2019

    .NET Core 3.1

补充@dsway的好答案,我使用了Visual Studio 2019的宏,以便我可以将目录路径保持为相对路径:

start "My Process" /D "$(SolutionDir)Scripts" /WAIT blahblah.bat

  1. 右键单击相关项目
  2. 出现上下文菜单
  3. 选择属性选项
  4. 选择“生成事件”
  5. 点击“编辑后期构建…”
  6. 输入我上面发布的命令,并根据您的需求进行调整,然后按OK。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接