[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]批处理如何判断文件版本执行不同的命令?

本帖最后由 freesoft00 于 2015-5-10 19:22 编辑
  1. @echo off
  2. ver|find /i " 6.2">nul &&(
  3. echo www
  4. )||(
  5. echo tttt
  6. echo tttt www
  7. )
  8. pause
复制代码
示例代码如上,如果是win8则执行第一条命令,如果不是则执行第二条命令,为什么有时候正常,有时候执行的时候还会执行第二条命令能,因为第二条命令在win8中没有所以会有错误提示。这是为什么呢。
那项这种有没有更改的方法排除这个有时候出现的判断错误呢。

好的,感谢上面的各位!

TOP

  1. @echo off
  2. ver|find /i " 6.2">nul
  3. if errorlevel 1 (
  4.   echo tttt
  5.   echo tttt www
  6. ) else (
  7.   echo ttt
  8. )
复制代码

TOP

回复 6# bailong360


   哦,也可能是你说的情况吧。
那要具体如何写呢?

TOP

回复 5# freesoft00
echo wwww执行失败也会执行后面的命令
建议用errorlevel

TOP

本来如果是win8之显示wwww就ok了,可是有时候会出现
tttt dddd,如果是实际的命令可以看到批处理的窗口中有这个命令的错误提示。不是每次都有,但是有一定的几率。
所以我想不用这个算了,省的有错误,换一个形式的代码完成这个任务算了。

TOP

同一台win8,
不知道是这个代码,我发现使用这个很容易出现这种情况。
  1. ver|find /i " 6.2">nul &&(
  2. echo wwww
  3. )||(
  4. echo tttt
  5. echo tttt dddd
  6. )
复制代码
我没有发现这个段代码哪里有错误,但是确实是有这个问题。

TOP

同一台Win8,有时候成功有时候失败?
很多台Win8,有的成功有的失败?

你的问题属于哪种情况呢
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('ver^|find "6.2"') do set "n=%%a"
  3. if not defined n (echo NO) else (echo YES)
  4. pause
复制代码
  1. @echo off
  2. ver|find "6.2" >nul &&(echo YES&pause&exit)
  3. echo NO&pause&exit
复制代码
  1. @echo off
  2. ::wmic os get caption可获得较靠谱的系统版本
  3. for /f "tokens=1* delims==" %%a in ('wmic os get Caption /value') do echo;%%b
  4. pause
复制代码

TOP

返回列表