batch-file – 如何测试cmd.exe命令是否存在?
发布时间:2020-12-14 03:52:43 所属栏目:Windows 来源:网络整理
导读:例如,在 Windows 7上,mklink可以从cmd.exe / C mklink获得,但是在Windows XP上则没有. 除了执行cmd.exe / C mklink并尝试读取errorlevel之外,还有一种更简单的方法来测试cmd.exe是否支持命令? 谢谢! 解决方法 cmd的ERRORLEVEL不是命令存在的良好指示器,因
例如,在
Windows 7上,mklink可以从cmd.exe / C mklink获得,但是在Windows XP上则没有.
除了执行cmd.exe / C mklink并尝试读取errorlevel之外,还有一种更简单的方法来测试cmd.exe是否支持命令? 谢谢! 解决方法
cmd的ERRORLEVEL不是命令存在的良好指示器,因为如果命令不存在或者它失败,则将其设置为非零值,这可能会导致测试失败.
或者,您可以执行以下操作之一: 检查操作系统版本 就像Adriano在评论中建议的那样,可以检查Windows的版本,如下所示: set mklink_supported=true ver | find "XP" >nul 2>&1 && set mklink_supported=false 或者像这样: set mklink_supported=false echo %vers% | find "Windows 7" >nul 2>&1 && set mklink_supported=true 然后: if %mklink_supported%==false ( echo 'mklink' is not supported on this operating system. ) 或者沿着这些方向的东西.但是,您需要确保正在处理所有必需的操作系统版本. Testrun命令并检查ERRORLEVEL 或者,您可以尝试直接运行mklink.如果找不到,则ERRORLEVEL设置为9009: @echo off mklink >nul 2>&1 if errorlevel 9009 if not errorlevel 9010 ( echo 'mklink' is not supported on this operating system. ) 请注意,有两个if语句.如果错误级别9009在ERRORLEVEL> = 9009时有效,那么在ERRORLEVEL> 9009时需要第二个if语句来排除这种情况. 我更喜欢第二种解决方案,因为它可以在所有版本的Windows上运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Windows上编译Vala源代码
- windows – 我可以使用哪些工具来确定应用程序的硬件要求?
- windows中的常用Dos命令
- 新建的模态窗口失去了重点,在Windows Vista中变得无法使用
- windows-runtime – Win 8.1 SearchBox – 绑定建议
- xaml – 在Windows 8中使用不同控件创建集线器页面
- windows-server-2012-r2 – 如何在Windows 2012中禁用RC4?
- .net – msxml6.dll错误’80072ee2’操作超时
- windows-7 – 在Windows 7 64位上的Outlook 2010“无法打开
- winrt-xaml – ScrollViewer.ChangeView返回false
推荐文章
站长推荐
- microsoft-metro – 在ListView上收听click事件
- windows-server-2008 – 在Windows Server 2008
- 在Windows 2008 Server上同步时间的最佳方法
- active-directory – 委派在Microsoft Exchange
- 如何正确创建一个nim / nimrod windows dll
- windows-7 – 使用SYSTEM帐户运行SEP扫描
- 在Windows系统下使用PHP生成Word文档的教程
- Windows中的Grep和Awk表达式错误中的无效字符
- 如何在Windows中将Oracle 11g与nodejs连接?
- group-policy – 通过GPO或PowerShell部署二进制
热点阅读