无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
打印 上一主题 下一主题

判断当前系统版本-批处理代码测试

  [复制链接]
31#
发表于 2024-11-12 23:28:41 | 只看该作者
回复

使用道具 举报

32#
发表于 2024-11-13 04:07:13 | 只看该作者
感谢分享
回复

使用道具 举报

33#
发表于 2024-11-13 04:19:10 | 只看该作者
谢谢楼主的分享!
回复

使用道具 举报

34#
发表于 2024-11-13 08:00:06 | 只看该作者
收藏,谢谢分享
回复

使用道具 举报

35#
发表于 2024-11-13 08:14:45 | 只看该作者
wangyibin 发表于 2024-11-12 18:52
为了提高可读性和代码结构,你可以考虑简化重复性的 if 条件判断,比如通过 for 循环遍历检测版本信息,减 ...

for /f "tokens=2,3,4 skip=2" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do echo 当前系统为%%b %%c

试试
回复

使用道具 举报

36#
发表于 2024-11-13 09:08:15 | 只看该作者
从代码里看是定义了XP-11之间的系统,如果没被定义到的,如95 ,me,98以及后续要新出的系统是否就不能识别了? 如果只是想知道当前系统,DOS里输入systeminfo就可以显示。要是再根据识别的系统再干点别的那就不会了。
回复

使用道具 举报

37#
发表于 2024-11-13 09:15:44 | 只看该作者
感谢分享
回复

使用道具 举报

38#
发表于 2024-11-13 09:29:47 | 只看该作者
倒垃圾的歌者 发表于 2024-11-12 19:19
chatgpt不可全信,我举个例子,比如
我这段的意思是如果输出结果中只要包含“10”这个字符串的,就设定 ...

根据已知问题进行了修改
  1. [url=home.php?mod=space&uid=336905]@echo[/url] off
  2. cd /d "%~dp0"
  3. title 检测当前系统版本
  4. color f0
  5. (cacls "%SystemDrive%\System Volume Information" >nul 2>&1) || (
  6.     start "" mshta vbscript:CreateObject^("Shell.Application"^).ShellExecute^("%~snx0"," %*","","runas",1^)^(window.close^)
  7.     exit /b
  8. )

  9. :: 获取系统版本信息
  10. for /f "tokens=2* skip=2" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"') do set SystemVersion=%%b
  11. for /f "tokens=2* skip=2" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CurrentBuild"') do set BuildVersion=%%b

  12. :: 输出调试信息
  13. echo 检测到的系统版本: %SystemVersion%
  14. echo 检测到的内部版本号: %BuildVersion%

  15. :: 检查系统版本,确保精确匹配
  16. if /i "%SystemVersion%"=="Windows XP" goto WinXP
  17. if /i "%SystemVersion%"=="Windows 7" goto Win7
  18. if /i "%SystemVersion%"=="Windows 8" goto Win8
  19. if /i "%SystemVersion%"=="Windows 10 Pro" (
  20.     if %BuildVersion% GEQ 22000 goto Win11
  21.     goto Win10
  22. )

  23. :: 未检测到已知版本时的处理
  24. echo 无法检测到已知的 Windows 版本。
  25. goto End

  26. :WinXP
  27. echo.
  28. echo 当前系统为 Windows XP
  29. goto End

  30. :Win7
  31. echo.
  32. echo 当前系统为 Windows 7
  33. goto End

  34. :Win8
  35. echo.
  36. echo 当前系统为 Windows 8
  37. goto End

  38. :Win10
  39. echo.
  40. echo 当前系统为 Windows 10
  41. goto End

  42. :Win11
  43. echo.
  44. echo 当前系统为 Windows 11
  45. goto End

  46. :End
  47. echo.
  48. pause
  49. exit /b
复制代码


回复

使用道具 举报

39#
发表于 2024-11-13 09:57:18 | 只看该作者
倒垃圾的歌者 发表于 2024-11-12 19:22
你要的话我可以给你改进一下

谢谢大佬
回复

使用道具 举报

40#
发表于 2024-11-13 10:02:38 | 只看该作者
学习
回复

使用道具 举报

41#
发表于 2024-11-13 10:57:25 | 只看该作者
感谢分享,下载保存了
回复

使用道具 举报

42#
发表于 2024-11-13 11:04:00 | 只看该作者
感謝分享
回复

使用道具 举报

43#
发表于 2024-11-15 16:30:30 | 只看该作者
谢谢分享
回复

使用道具 举报

44#
发表于 2024-11-15 17:19:50 | 只看该作者
我是直接判断注册表,更简单
回复

使用道具 举报

45#
发表于 9 小时前 | 只看该作者
倒垃圾的歌者 发表于 2024-11-12 21:09
XP没有Powshell,所以无法判断

XP可以安装powershell ,但是XP好像不用判断,哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-23 19:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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