找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26729|回复: 8

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

[复制链接]
发表于 2015-5-10 15:07:22 | 显示全部楼层 |阅读模式
本帖最后由 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中没有所以会有错误提示。这是为什么呢。
那项这种有没有更改的方法排除这个有时候出现的判断错误呢。
发表于 2015-5-10 15:50:35 | 显示全部楼层
  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
复制代码
发表于 2015-5-10 16:39:34 | 显示全部楼层
同一台Win8,有时候成功有时候失败?
很多台Win8,有的成功有的失败?

你的问题属于哪种情况呢
 楼主| 发表于 2015-5-10 16:51:58 | 显示全部楼层
同一台win8,
不知道是这个代码,我发现使用这个很容易出现这种情况。
  1. ver|find /i " 6.2">nul &&(
  2. echo wwww
  3. )||(
  4. echo tttt
  5. echo tttt dddd
  6. )
复制代码
我没有发现这个段代码哪里有错误,但是确实是有这个问题。
 楼主| 发表于 2015-5-10 16:54:48 | 显示全部楼层
本来如果是win8之显示wwww就ok了,可是有时候会出现
tttt dddd,如果是实际的命令可以看到批处理的窗口中有这个命令的错误提示。不是每次都有,但是有一定的几率。
所以我想不用这个算了,省的有错误,换一个形式的代码完成这个任务算了。
发表于 2015-5-10 18:44:09 | 显示全部楼层
回复 5# freesoft00
echo wwww执行失败也会执行后面的命令
建议用errorlevel
 楼主| 发表于 2015-5-10 18:56:58 | 显示全部楼层
回复 6# bailong360


   哦,也可能是你说的情况吧。
那要具体如何写呢?
发表于 2015-5-10 19:10:24 | 显示全部楼层
  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. )
复制代码
 楼主| 发表于 2015-5-10 19:21:40 | 显示全部楼层
好的,感谢上面的各位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 05:11 , Processed in 0.018550 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表