标题: [系统相关] [已解决]批处理如何判断文件版本执行不同的命令? [打印本页]
作者: freesoft00 时间: 2015-5-10 15:07 标题: [已解决]批处理如何判断文件版本执行不同的命令?
本帖最后由 freesoft00 于 2015-5-10 19:22 编辑
- @echo off
- ver|find /i " 6.2">nul &&(
- echo www
- )||(
- echo tttt
- echo tttt www
- )
- pause
复制代码
示例代码如上,如果是win8则执行第一条命令,如果不是则执行第二条命令,为什么有时候正常,有时候执行的时候还会执行第二条命令能,因为第二条命令在win8中没有所以会有错误提示。这是为什么呢。
那项这种有没有更改的方法排除这个有时候出现的判断错误呢。
作者: pcl_test 时间: 2015-5-10 15:50
- @echo off
- for /f "delims=" %%a in ('ver^|find "6.2"') do set "n=%%a"
- if not defined n (echo NO) else (echo YES)
- pause
复制代码
- @echo off
- ver|find "6.2" >nul &&(echo YES&pause&exit)
- echo NO&pause&exit
复制代码
- @echo off
- ::wmic os get caption可获得较靠谱的系统版本
- for /f "tokens=1* delims==" %%a in ('wmic os get Caption /value') do echo;%%b
- pause
复制代码
作者: gawk 时间: 2015-5-10 16:39
同一台Win8,有时候成功有时候失败?
很多台Win8,有的成功有的失败?
你的问题属于哪种情况呢
作者: freesoft00 时间: 2015-5-10 16:51
同一台win8,
不知道是这个代码,我发现使用这个很容易出现这种情况。- ver|find /i " 6.2">nul &&(
- echo wwww
- )||(
- echo tttt
- echo tttt dddd
- )
复制代码
我没有发现这个段代码哪里有错误,但是确实是有这个问题。
作者: freesoft00 时间: 2015-5-10 16:54
本来如果是win8之显示wwww就ok了,可是有时候会出现
tttt dddd,如果是实际的命令可以看到批处理的窗口中有这个命令的错误提示。不是每次都有,但是有一定的几率。
所以我想不用这个算了,省的有错误,换一个形式的代码完成这个任务算了。
作者: bailong360 时间: 2015-5-10 18:44
回复 5# freesoft00
echo wwww执行失败也会执行后面的命令
建议用errorlevel
作者: freesoft00 时间: 2015-5-10 18:56
回复 6# bailong360
哦,也可能是你说的情况吧。
那要具体如何写呢?
作者: bailong360 时间: 2015-5-10 19:10
- @echo off
- ver|find /i " 6.2">nul
- if errorlevel 1 (
- echo tttt
- echo tttt www
- ) else (
- echo ttt
- )
复制代码
作者: freesoft00 时间: 2015-5-10 19:21
好的,感谢上面的各位!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |