我有一個批處理文件,我的目標是隻使用一次。在進一步執行時,這個批處理文件不應該做任何事爲了解決這個任務,我決定使用If Exist
來檢查在批處理腳本結尾處創建的文件。 所以在開始的時候我有這個(我去正確的目錄):如何在文件已存在時退出批處理文件開頭的批處理?
If Exist "file.txt" (
goto exit
)
我在文件的結尾設置exit
標記。
替代方法將不勝感激,但我更喜歡這個問題的解決方案。
我有一個批處理文件,我的目標是隻使用一次。在進一步執行時,這個批處理文件不應該做任何事爲了解決這個任務,我決定使用If Exist
來檢查在批處理腳本結尾處創建的文件。 所以在開始的時候我有這個(我去正確的目錄):如何在文件已存在時退出批處理文件開頭的批處理?
If Exist "file.txt" (
goto exit
)
我在文件的結尾設置exit
標記。
替代方法將不勝感激,但我更喜歡這個問題的解決方案。
將轉到manual說:
直接批處理程序跳轉到標記線。
語法 GOTO標籤
我猜標籤(我不會用這個詞標記)的名字不應該是exit
作爲Windows命令具有相同名稱的存在。標籤更改爲
:exitprocess
,做
if exist "file.txt" goto exitprocess
但是,如果你想使用exit
作爲標籤的解決方法是使用
if exist "file.txt" goto :exit
心靈的結腸,這告訴轉到找到標籤名爲exit
致謝:@somethingdark的解決方法。
微軟解釋爲GOTO可能性使用
goto :EOF
退出一個批處理文件或一批子例程的處理,由此標籤EOF(文件的結束)是預定義的,並且必須不被明確地定義批處理文件。
退出一個批處理文件或一批子例程的處理的另一種方法是使用指令EXIT與參數/B
,即
exit /B
此離開剛剛批處理和不完整的命令處理,這使得上的差使用EXIT用於退出批處理子程序或從另一個批處理文件中調用批處理文件。
因此,它可以被用於此任務的任何
if exist "file.txt" goto :EOF
或
if exist "file.txt" exit /B
兩條線導致在離開當前批次處理並返回到調用過程,其是命令過程本身當批量文件被直接調用,導致退出命令過程。
感謝修復,也意識到我拼錯「退出」,而是把「存在」,在我If如果存在塊。我先給了另一個人最好的回答,因爲他先回答了,但你的答案同樣好。 –
雖然他應該可以說'goto:exit'。但我同意;一般來說,您應該儘量避免與命令具有相同名稱的標籤。 – SomethingDark
我會盡快嘗試(明天)如果它的作品我會給你最好的答案。 –
@EliR:謝謝:D它應該工作 – sjsam