
我創建了一個批次腳本(在這裡查看完整內容)先啟動一些服務,然後啟動應用程式。應用程式完成後,批次應該會GOTO somewhere
等待程式退出才能繼續。
啟動應用程式並繼續的標題:
:vmSTARTAPP
"C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"
IF NOT %BACK%==NULL GOTO %BACK%
GOTO STARTAPPCONT
該標頭是從另一個標頭調用的:
:STARTAPP
cls
echo Starting Application
GOTO %BATCH%
%BATCH%
包含下一個標頭的名稱 - 在上述情況下為vmSTARTAPP
.
如果我從新的命令提示字元視窗運行它,它可以正常工作,只是不在這批處理中。
我究竟做錯了什麼?
PS 不要將此問題參考我之前的問題。這是一個完全不同的情況。
答案1
您可以嘗試替換顯示的行嗎
:vmSTARTAPP
"C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"
和
:vmSTARTAPP
start "Starting VMWare" /B "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe"
我假設您想要靜默啟動 VMWare 並繼續不間斷,理論上,這應該可以做到這一點。
此start
指令指示DOS 執行您傳遞給它的指令(在本例中為「C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe」),並且預設不會等待您傳遞給它的命令返回並在單獨的進程中運行它。
預設情況下,批次檔中的每一行都會按順序運行,並等待每一行執行並返回,然後再繼續下一行。該start
命令透過啟動您在單獨的進程(DOS 視窗)中傳遞的程式來解決此問題,因此您的批次檔遇到此行,像平常一樣運行它,看到命令start
已返回(正在創建一個新進程來運行之後)您的命令)和批次檔將繼續執行,就好像沒有發生任何意外一樣。
標題"Starting VMWare"
只是一個標題,如果沒有參數/B
告訴它不顯示新的 DOS 窗口,新建立的 DOS 窗口將具有該標題。標題是必要的,但也是可選的,我偶爾會在沒有標題的腳本中遇到 WTF 時刻,但那些時候更多的是例外而不是規則。
您可以在以下位置找到有關“開始”命令的更多信息http://ss64.com/nt/start.html