Board logo

标题: [系统相关] [已解决]如何通过批处理获得指定文件的版本号? [打印本页]

作者: yusukeboy    时间: 2019-5-8 11:15     标题: [已解决]如何通过批处理获得指定文件的版本号?

如何获得指定文件的版本号?路径是C:\Windows\System32\drivers\srv.sys
要获得如图中这个版本号
由于数量太多,希望能节约一点时间
谢谢大佬。
作者: Batcher    时间: 2019-5-8 11:31

wmic命令:
  1. wmic datafile where "Name='C:\\Windows\\System32\\drivers\\srv.sys'" get Version /value
复制代码
test1.bat:
  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('wmic datafile where "Name='C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe'" get Version /value ^| findstr "="') do (
  3.     for /f %%j in ("%%i") do (
  4.         set "FileVersion=%%j"
  5.     )
  6. )
  7. echo %FileVersion%
  8. pause
复制代码
test2.bat
  1. @echo off
  2. for /f %%i in ('powershell -c "(Get-Item -Path 'C:\Program Files (x86)\Tencent\WeChat\WeChat.exe').VersionInfo.ProductVersion"') do (
  3.     set "FileVersion=%%i"
  4. )
  5. echo %FileVersion%
  6. pause
复制代码

作者: yusukeboy    时间: 2019-5-8 15:02

谢谢。完美解决
作者: Batcher    时间: 2021-6-6 11:47

【分享】批处理获取、比较新旧版本号并执行相应操作
  1. @echo off
  2. cd /d "%~dp0"
  3. set "FileVersion=version.txt"
  4. set "FileCheck=C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
  5. set "VersionOld=0"
  6. for /f %%i in ('powershell -c "(Get-Item -Path '%FileCheck%').VersionInfo.ProductVersion"') do (
  7.     set "VersionNew=%%i"
  8. )
  9. if not exist "%FileVersion%" (
  10.     >"%FileVersion%" echo %VersionNew%
  11.     echo %FileVersion% 文件不存在
  12.     goto :ExecZip
  13. ) else (
  14.     for /f %%i in ('type "%FileVersion%"') do (
  15.         set "VersionOld=%%i"
  16.     )
  17. )
  18. if "%VersionNew%" neq "%VersionOld%" (
  19.     echo 新旧版本号不一致
  20.     >>"%FileVersion%" echo %VersionNew%
  21.     goto :ExecZip
  22. ) else (
  23.     echo 新旧版本号一致
  24. )
  25. goto :eof
  26. :ExecZip
  27. echo 下面执行压缩命令
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2