exec cmd.exe tcl

时间:2012-08-12 11:16:45

标签: tcl

我一直在查看有关exec cmd.exe的信息,但我找不到任何有用的信息。任何人都可以向我解释以下代码:

exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup

2 个答案:

答案 0 :(得分:6)

让我们分解一下:

exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
#^^^

exec命令启动子进程。

exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
#    ^^^^^^^^^^

cmd.exe是一个windows“批处理”shell,/c标志要求它将其参数作为命令运行。

exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
#               ^^^^^^^^^^^

内置于cmd.exe的{​​{3}}命令也是一种启动另一个程序的方法。 /wait标志告诉它等待启动的程序结束。

exec cmd.exe /c start /wait $buildLoc\\setup.exe /extract_all:C:/setup
#                           ^^^^^^^^^

常规TCL变量;它将在TCL内扩展。

其余的是setup.exe程序所做的事情(谁知道什么......)

如果不了解这里运行的程序(见下文),我很难确切地说出为什么需要中间exec.cmd /c start /wait;我猜想cmd.exe是加载所有系统的默认环境(而不是使用从tcl程序继承的环境)而start是打开一个终端窗口所以输出设置。 exe程序会显示给用户。

答案 1 :(得分:2)

查看auto_execok

exec {*}[auto_execok start] /wait $buildLoc\\setup.exe /extract_all:C:\\setup