我一直在寻找有关exec cmd.exe的信息,但我找不到任何有用的信息.任何人都可以向我解释以下代码:
exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
Run Code Online (Sandbox Code Playgroud)
让我们分解一下:
exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
#^^^
Run Code Online (Sandbox Code Playgroud)
在EXEC命令启动一个子进程.
exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
# ^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
cmd.exe是一个Windows"批处理"shell,该/c标志要求它将其参数作为命令运行.
exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
# ^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
在启动的命令,建成cmd.exe,是又一种方式来获得另一个程序来启动.该/wait标志告诉它等待,直到启动的程序结束.
exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
# ^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
常规TCL变量; 它将在TCL内扩展.
其余的是setup.exe程序做的事情(谁知道什么......)
如果不了解这里运行的程序(见下文),就很难确切地说出为什么exec.cmd /c start /wait需要中间体; 我猜想cmd.exe是加载所有系统的默认环境(而不是使用从tcl程序继承的环境),start而是打开一个终端窗口,以便显示setup.exe程序的输出用户.