
在批處理腳本中調用bat的exit問題最后由 buyiyang 于 -5-22 16:50先給一個例子,以下分別是1.bat與2.bat的內容1.bat
- 2.bat
- echo,第一個腳本
- pause
nclick="copycode($('code0'));">復制代碼
2.bat
- echo,第二個腳本
nclick="copycode($('code1'));">復制代碼
執行1.bat會發現它閃退了,實際上它只執行了echo,第二個腳本,然后直接退出了,因為2.bat不會返回,而且bat文件尾默認有一個exit。看看exit命令的作用:
- 退出 CMD.EXE 程序(命令解釋器)或當前批處理腳本。
- EXIT [/B] [exitCode]
- /B指定要退出當前批處理腳本而不是 CMD.EXE。如果從一個批處理腳本外執行,則會退出 CMD.EXE
- exitCode指定一個數字號碼。如果指定了 /B,將 ERRORLEVEL設成那個數字。如果退出 CMD.EXE,則用那個數字設置過程退出代碼。
nclick="copycode($('code2'));">復制代碼
所以執行完2.bat后就直接退出CMD.EXE了,可以在1.bat中這樣解決:
- call 2.bat
- for /f %%i in ('2.bat') do @
- cmd /c 2.bat
nclick="copycode($('code3'));">復制代碼
有時候,有需要在2.bat中顯式地寫上exit,這時call 2.bat也會直接退出,可以采取后面兩種方法。使用call最好是將exit改成exit /b,或者改為使用goto :eof返回call。