我正在为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 –