使用批处理文件打开另一个Cmd提示符并在该Cmd提示符下运行Cmd

时间:2014-05-06 14:21:27

标签: visual-studio-2010 batch-file

我有另一个正在运行的bat文件,一旦在命令提示符下创建了bat文件,我想在该窗口中运行另一个命令。

这是我到目前为止所拥有的:

call C:\Batch\MyBatFile.bat (this creates the new command prompt that I want to use)
C:\Program\MyProgram.exe

但是,第二行是在原始窗口中运行,而不是在新的命令提示符下运行。我尝试使用start C:\Program\MyProgram.exe,但这只是在第三个新窗口中运行。

如果它是相关的,第一行只是设置一些我需要访问的环境变量,而MyProgram是一个visual studio 2010项目。从技术上讲,我可能能够修改该蝙蝠来运行命令,但我宁愿避免使用该解决方案,因为蝙蝠文件不是由我拥有的(因此无论什么时候它都会更新我&#39 ; d也必须更新我的。)

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试将program.exe注入由cmd创建的batfile.bat,方法是重定向其输入流,然后向其发送命令,例如。 echo C:\Program\MyProgram.exe | C:\Batch\MyBatFile.bat。这假设批处理实际上只设置了一堆变量,并且不使用重置/消耗输入流的命令。

请注意,如果以这种方式重定向/管道新命令窗口将不会保持打开可能: - )只执行您的命令,然后关闭/退出。

答案 1 :(得分:0)

创建CMD脚本以运行您在问题中显示的两个命令。也许称之为RunMyProgram.cmd。内容只是你拥有的两行:

REM Source the environment variables.
REM Any new command prompt window that is opened can be ignored
CALL C:\Batch\MyBatFile.bat

C:\Program\MyProgram.exe

如果您对问题的评论中所说的内容对MyBatFile.bat设置环境变量然后启动新窗口是准确的,那么您应该能够在{{1}之后使用这些环境变量退出。

如果从命令提示符运行MyBatFile.bat仍然有RunMyProgram.cmd在未设置环境变量时给出错误,或者MyProgram.exe在您关闭之前甚至没有开始运行弹出的新窗口,然后我们需要查看MyProgram.exe正在执行的确切命令。