2012-08-12 88 views
3

我一直在尋找有關exec cmd.exe的信息,但是我找不到任何有用的信息。誰能給我解釋一下下面的代碼:exec cmd.exe tcl

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

回答

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是一個窗口「批量」的外殼,/c標誌要求它來運行其參數爲命令。

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

start命令,內置cmd.exe,是一種方式來獲得另一個程序來啓動。 /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是打開終端窗口,因此顯示setup.exe程序的輸出給用戶。

2

退房auto_execok

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