我有另一个正在运行的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也必须更新我的。)
提前致谢。
答案 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
正在执行的确切命令。