當我嘗試運行我的Perl腳本時,它成功執行。後來,當我運行這個命令echo %errorlevel%
,它給了我輸出爲1.爲什麼?爲什麼我成功運行Perl腳本後退出代碼1?
-1
A
回答
5
如果Perl,以ERRORLEVEL 1返回,然後要麼exit(1)
被稱爲
>perl -e"exit 1"
>echo %errorlevel%
1
或$?
在一個END
處理
>perl -e"END { $? = 1; }"
>echo %errorlevel%
1
或程序去世時$!
設置爲1
1
>perl -e"$!=1; die;"
Died at -e line 1.
>echo %errorlevel%
1
(這往往預示一個系統調用失敗,出現「不允許操作」)
>perl -E"say $!=1"
Operation not permitted
或程序去世時$!
是0
和$?
爲(1 << 8)
。
>perl -e"$!=0; $?=1<<8; die;"
Died at -e line 1.
>echo %errorlevel%
1
我想這是可能的perl
與在其他情況下1
退出(如加載perl
本身的問題),但我不知道有任何這樣的情況。
1
要注意的是,您必須立即詢問%ERRORLEVEL%。批處理腳本中的每一步都會設置或混淆錯誤級別,因此如果您希望它保留在周圍,它不會。例如,如果您運行一個腳本,然後運行另一個命令(dir或echo等),然後檢查errolevel,它將用於腳本之後的命令,而不是腳本本身。
相關問題
- 1. 爲什麼'os.system'退出代碼爲1?
- 2. 如何在perl腳本退出之前運行一段代碼
- 3. 爲什麼在Perl中退出代碼255而不是-1?
- 4. 爲什麼我的Perl腳本以137退出?
- 5. 從Java執行Perl腳本tomcat返回255退出代碼
- 6. 「aspnet_compiler.exe」退出,代碼爲1
- 7. 運行從代碼異常perl腳本
- 8. 爲什麼我的shell腳本在更改用戶後退出?
- 9. 爲什麼我的docker在執行我的shell腳本後退出?
- 10. 生成後事件導致退出代碼爲1
- 11. 爲什麼我的powershell腳本返回錯誤的退出代碼?
- 12. 爲什麼此代碼在成功後輸出失敗消息?
- 13. 如何使用setuid()作爲cgi-bin成功運行Perl腳本?
- 14. 爲什麼Theano代碼無誤地運行成功?
- 15. 如果sendToSocket成功,爲什麼setTimeout def.reject代碼不能運行?
- 16. 期望腳本 - 退出時運行代碼
- 17. 爲什麼我的bash腳本執行另一個腳本不能退出?
- 18. perl system退出代碼36096
- 19. 解壓縮返回退出代碼1,即使提取成功
- 20. 運行谷歌腳本後將每行標記爲成功
- 21. 運行此代碼後,爲什麼會出現Ajax錯誤?
- 22. 什麼是「1」在Perl源代碼中?
- 23. csc2.exe退出代碼1
- 24. 契約退出代碼1
- 25. JNI_CreateJavaVM退出代碼-1?
- 26. ngen build退出代碼-1
- 27. vNext建立退出代碼爲1
- 28. libtool失敗,退出代碼爲1
- 29. 錯誤:ffprobe退出,代碼爲1
- 30. copypng失敗,退出代碼爲1
謝謝!!!你的意思是可能有一個退出(1)在Perl代碼?你能更清楚嗎? – pauler 2012-07-20 06:39:42
你指的是最後一段?可能會在'perl'本身調用'exit'。但就像我說的,我不知道任何。 – ikegami 2012-07-20 18:55:13
我發現我的perl腳本中有一個退出代碼。我已經做出了改變,感謝like幫助ikegami – pauler 2012-07-23 06:23:29