2012-09-15 36 views
4

要检查命令可在bash shell,我通常会做:如何检查命令在Windows shell中是否可用?

​​

什么是Windows等价?

+0

你的意思的PowerShell或命令提示符? –

+0

命令提示符:-)但是如果你发布了一个power shell的答案,我会+1,只是因为我会学到一些东西。 –

+0

对于Powershell http://stackoverflow.com/questions/3919798/how-to-check-if-a-cmdlet-exists-in-powershell-at-runtime-via-script –

回答

2

您可以使用非常相似的

%command% >nul 2>&1 || (
    echo "Error: command not found" 
    exit /b 1 
) 

理所当然的东西,这将实际执行命令,但大多数命令不会做任何事情如果没有适当的参数。如果你想更确定,你可以使用%command% /? >nul 2&1。这将尝试将帮助该命令,但不执行

更新: 完全避免执行命令,考虑where.exe。它与Vista和Windows 7捆绑在一起。对于其他操作系统,您可以下载它。请参考this post on how to download it

一旦拥有它,您可以使用/Q开关来运行它以避免额外的输出。返回码0意味着找到命令。一旦我发现,where命令需要您提供扩展名。

其中的另一端,有一个lengthy discussion here约了一批“一衬里”,如果没有指定的扩建工程(但实际上失败,当你指定扩展名)

+0

这是一个有趣的选择。并不总是想要的,但仍然可以是有用的。 –

+0

我已更新我的答案,以包含不执行您正在测试的命令的替代方案 – Slav

相关问题