我正在爲Windows編寫批處理文件並使用命令7z
(7-Zip)。我已將它的位置放在PATH中。有沒有一種比較簡單的方法來檢查命令是否可用?檢查命令是否在批處理文件中可用
6
A
回答
1
如果未找到該命令,則嘗試執行7z.exe
將返回9009的%errorlevel%
。你可以檢查。
7z.exe
if %errorlevel%==9009 echo Command Not Found
+0
更好的方法是'7z.exe> nul 2>&1 |回聲命令找不到',我猜。 – Joey
+0
IMO的最佳方式是:http://stackoverflow.com/a/27014081/1724702 –
-1
是的,打開命令窗口並輸入「7z」(我假設這是可執行文件的名稱)。如果你得到一個錯誤,說明命令或操作沒有被識別,那麼你知道路徑語句在某處存在問題,否則它不會。
1
16
我不建議執行命令來檢查它是否可以使用(比方說,可以在PATH
環境變量)。因此,我認爲最好的辦法是使用where
命令:
where 7z.exe >nul 2>nul
if %errorlevel%==1 (
@echo 7z.exe not found in path.
[do something about it]
)
的>nul
和2>nul
是可選的;此處用於防止顯示由where
命令生成的標準輸出和標準錯誤輸出。
更新:爲什麼你可能不希望執行:0
- 你可能不會真的不知道該程序的功能
- 程序可能有副作用 - 它可能會做一些事情,你知道,但不想 - 比如刪除文件,重新緩存等
- 程序可資源密集型/慢
問題是要確定程序是否可用,所以你應該檢查相同。
相關問題
- 1. 批處理文件 - 檢查命令是否可用
- 2. 批處理:檢查批處理文件中的命令行參數
- 3. 批處理文件命令
- 4. 檢查dos批處理文件中的輸入命令?
- 5. 檢查命令在批處理文件成功
- 6. 批處理文件命令/處理
- 7. 是否存在命令在批處理文件不工作
- 8. 檢查是否存在目錄使用批處理文件
- 9. 是否可以在批處理文件中發出等待命令?
- 10. 批處理:使用FOR命令檢查文件夾中的文件
- 11. 使用批處理文件SHIFT命令
- 12. 批處理文件中的命令行?
- 13. 批處理文件中的Reg命令
- 14. cmd中的批處理命令與批處理文件
- 15. 如何在批處理腳本中檢查「mysqldump」和「mysql」命令是否成功?
- 16. 檢查批處理文件中GAC中是否有程序集
- 17. 批處理文件檢查文件是否覆蓋正確
- 18. 檢測文件是否在批處理文件中打開
- 19. 是否有像這些批處理文件的命令?
- 20. 使用批處理或JavaScript來檢查文件是否打開
- 21. 使用批處理文件檢查服務器是否啓動?
- 22. 如何檢查批處理文件是否在Windows上運行?
- 23. 如何檢查文件/目錄是否在批處理腳本
- 24. 檢查是否有其他批處理文件仍在運行
- 25. 檢查文件是否存在並在PowerShell中運行批處理文件?
- 26. 批處理文件:是否有批處理文件中的命令行將輸入包含到存儲過程
- 27. 沉默只是在批處理文件中的命令
- 28. 批處理文件顯示批處理命令
- 29. 如何檢查調用命令的DOS批處理文件中的狀態
- 30. 批處理命令從文件
不要執行。IMO的最佳方式是:http://stackoverflow.com/a/27014081/1724702 –