windows 如何在运行.exe的同时保持在同一个命令窗口(而不是打开一个新窗口)?

tuwxkamq  于 2023-02-20  发布在  Windows
关注(0)|答案(7)|浏览(442)

我已经找了很多个星期来解决我的问题,但找不到一个好的方法来解决我可能需要使用的每台机器上的问题。
我知道START命令会打开一个新窗口来运行.exe,但我想留在同一个窗口中运行.exe
(因为我希望只有当.EXE运行完毕时批处理文件才能继续)
我发现在一些计算机上,当I .exe打开一个新窗口时,其他计算机停留在同一窗口中,这让我认为我的代码很好,但在计算机上的某个地方有一个设置是不同的。
你能帮忙吗?我有什么选择?我正在运行的.exe是NASTRAN,这是一个在命令窗口中运行的工程求解器。

oiopk7p5

oiopk7p51#

要等待命令终止,应使用WAIT标志:

start /WAIT c:/windows/system32/notepad.exe

您可以使用B标志启动应用程序而不创建新窗口:

start /WAIT /B "c:/windows/system32/cmd.exe"

您还应该尝试阅读start命令的帮助文本:

start /?
o75abkj4

o75abkj42#

您可以使用cmd /k example.exe

3bygqnnd

3bygqnnd3#

你可能有一个不同的变种.exe在一些机器上,这是调用只在那里,并产生一个单独的窗口,原因我不知道。搜索.exe文件在所有的机器上,并比较。
此外,张贴您的批处理文件代码,以便我们可以确切地看到您如何启动. exe。

anauzrmj

anauzrmj4#

你可以考虑 * 根本不使用start*,直接启动可执行文件即可。

xe55xuns

xe55xuns5#

是否尝试在批处理文件中使用call。它在与批处理文件相同的窗口中运行exe。批处理文件中的下一条语句在此exe运行完毕后执行

pxiryf3j

pxiryf3j6#

为了做到这一点,您必须运行一个可执行文件 * 从它所在的目录 *,还必须 * 避免使用"启动"命令 *。
例如:

cd C:\MyDirectory\
MyApplication.exe -Parameter1 -ParameterN
xzv2uavs

xzv2uavs7#

我只通过权限升级脚本(它将以管理员身份启动您的.bat/.cmd文件)在同一CMD窗口中显示我的可执行文件的输出(上述解决方案对我无效):

if _%1_==_payload_  goto :payload

:getadmin
    echo %~nx0: elevating self
    set vbs=%temp%\getadmin.vbs
    echo Set UAC = CreateObject^("Shell.Application"^)                >> "%vbs%"
    echo UAC.ShellExecute "%~s0", "payload %~sdp0 %*", "", "runas", 1 >> "%vbs%"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
goto :eof

:payload

<<<start writing your commands from here. E.g.:
"C:\my program\launcher.exe" argument1>>>

pause

P.S.不要忘记从脚本中删除<<<>>>

相关问题