2016-06-28 40 views

回答

4

exit withoput /b選項將退出批處理文件的cmd.exe的實例。

當你從資源管理器中啓動它啓動的批處理文件,沒有區別,
但是當你從一個cmd窗口啓動該批處理文件,該窗口時,該批處理文件執行exit關閉。

通常情況下,您應該避免這種情況,因爲它很煩人的行爲,因爲exit也會取消調用批處理文件,所以不能建立另一個調用此類文件的批處理文件。

call myAnnoyingBatch.bat 
echo This won't be displayed anymore 

我只知道一個很好的理由在腳本的末尾使用exit
當你建立一個drag&drop script that should be bullet proof,你需要一個出口,以避免像cat&dog.png

+0

阿一些文件名的問題,所以是有區別的,但事實上,這將是煩人,我想不通爲什麼他們提出了這樣,所以我會刪除它們。 –

+0

順便說一下,某些文件確實從總體文件中調用,並且不會導致您描述的問題。但是,它不使用'call',而是使用'start/B/wait'。除了明確地避免子文件中的「exit」問題之外,是否有任何理由呢? –

+0

我看到'call'在當前進程中運行腳本,而'start'運行一個新腳本(相當於bash中的_sourcing_ vs _executing_),並具有關於變量生存時間等的預期結果。但是這裏不使用變量,所以不是一個因素。這也解釋了爲什麼在'call''文件中退出會退出調用進程:因爲只有一個進程。 –

相關問題