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

[系统相关] 通过获取version.dll文件版本号判断硬盘里系统版本

[复制链接]
发表于 2017-8-18 06:38:55 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-8-18 09:08 编辑

通过获取version文件版本号,和是否有64位系统文件夹,以判断硬盘中所有的系统版本和位数。
发表于 2017-8-18 09:15:48 | 显示全部楼层
  1. wmic datafile where "name='%windir:\=\\%\\System32\\version.dll'" get version /value
  2. if exist "64位系统文件夹" (echo;64) else echo;32
复制代码
发表于 2017-8-18 09:42:59 | 显示全部楼层
test.bat
  1. @echo off
  2. powershell -c "(Get-ChildItem 'C:\Windows\System32\version.dll' | Select-Object -ExpandProperty VersionInfo).ProductVersion"
复制代码
发表于 2017-8-18 09:59:48 | 显示全部楼层
test2.bat
  1. @echo off
  2. powershell -c "(Get-WmiObject -class Win32_OperatingSystem).Caption"
复制代码
 楼主| 发表于 2017-8-18 14:20:25 | 显示全部楼层
  1. @echo off
  2. for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  3. if exist %%i:\windows\system32\version.dll echo %%i&wmic datafile where "name='%%i:\\windows\\system32\\version.dll'" get version
  4. )
  5. pause


  6. if (buf == "5.0.") then
  7.         sysver = "Windows 2000"
  8. elseif (buf == "5.1.") then
  9.         sysver = "Windows XP"
  10. elseif (buf == "5.2.") then
  11.         sysver = "Windows Server 2003"
  12. elseif (buf == "6.0.") then
  13.         sysver = "Windows Server 2008"
  14. elseif (buf == "6.1.") then
  15.         sysver = "Windows 7"
  16. elseif (buf == "6.2.") then
  17.         sysver = "Windows 8"
  18. elseif (buf == "6.3.") then
  19.         sysver = "Windows 8.1"
  20. elseif (buf == "10.0") then
  21.         sysver = "Windows 10"
复制代码
发表于 2017-8-18 14:34:48 | 显示全部楼层
回复 5# 窄口牛


不准确。有重复:
5.2       Windows Server 2003
5.2       Windows XP x64
6.0       Windows Vista
6.0       Windows Server 2008
6.1       Windows 7
6.1       Windows Server 2008 R2
6.2       Windows 8
6.2       Windows Server 2012
 楼主| 发表于 2017-8-18 15:10:25 | 显示全部楼层
只能这样了,挂载注册表才能细分,思路就这样,只是我不会鼓捣变量,写不完整。
发表于 2017-8-19 08:00:26 | 显示全部楼层
回复 7# 窄口牛


    如果只是判断目标系统的位数,直接看有没有program file (x86)目录不就得了?或者还有一个目录也可以看出来。
windows\syswow64

个人比较偏向用特定文件来判断目标系统。

相信你是在PE里使用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 21:23 , Processed in 0.019093 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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