【发布时间】:2020-12-16 16:10:46
【问题描述】:
我的批处理脚本使用了选择命令。在我的脚本中,我想检查choice.exe 是否存在,因为它是具有选择命令的应用程序。
而且我完全知道该怎么做。 通过执行选择命令并使其在失败时退出脚本
choice || goto:nochoiceapp
:nochoiceapp
echo Cannot continue with script
echo Your system doesn't have choice.exe
pause
但我想在脚本开始时执行此操作。不只是在需要选择命令的时候。
我希望它只检查choice.exe 是否存在,而不是实际执行“选择”。这将导致选择提示
如何让它执行选择命令但什么都不做?
【问题讨论】:
-
你也可以告诉我其他检查choice.exe是否存在的方法
-
你的方法会失败,因为
||之后的代码总是会被执行,因为choice总是设置ErrorLevel;您可以使用where choice > nul 2>&1 && (echo found) || (echo not found)来确定该命令是否存在…… -
我测试了我的方法,你说的是真的。但是如果我要使用你的,我现在必须检查 where.exe 是否存在,因为那是具有 where 命令的应用程序。
-
Sean 这是一个很好的观察,特别是因为
where.exe在 Windows Vista 之前不是内置的,而choice.exe是,(尽管由于某种原因它在 Windows 中被排除在外) 2000 和 XP)。但是请注意,Windows 2003 包含choice.exe 和Windows Vista 的所有版本,这些版本是14 年前发布的,因此在某些时候您应该决定不支持使用如此过时且很可能不安全的操作系统的人。
标签: batch-file cmd choice