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

[系统相关] 批处理怎样根据系统版本自动执行相对应的程序?

[复制链接]
发表于 2021-8-1 10:52:43 | 显示全部楼层 |阅读模式
  1. @echo off
  2. set "v1=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
  3. set "v2=HKLM\My_Hive\Microsoft\Windows NT\CurrentVersion"
  4. set "Hive=windows\system32\config\software"
  5. for %%i in (C ) do (
  6.     if /i "%%i:"=="%SystemDrive%" (
  7.         for /f "tokens=1,2*" %%a in ('reg query "%v1%"') do (
  8.             if /i "%%a"=="ProductName" (
  9.                 echo,系统分区是:%%i
  10.                 echo,原 系 统 是:%%c&echo,
  11.             )
  12.         )
  13.     ) else if exist "%%i:\%Hive%" (
  14.         reg load "HKLM\My_Hive" "%%i:\%Hive%" >nul
  15.         for /f "tokens=1,2*" %%a in ('reg query "%v2%"') do (
  16.             if /i "%%a"=="ProductName" (
  17.                 echo,系统分区是:%%i
  18.                 echo,原 系 统 是:%%c&echo,
  19.             )
  20.         )
  21.         reg unload "HKLM\My_Hive" >nul
  22.     )
  23. )
  24. pause
复制代码
如果显示为原 系 统 是:WIN10,就自动执行相对应的程序
start "" "x:\DDD.EXE
如果显示为原 系 统 是:WIN7,就自动执行相对应的程序
start "" "x:\fff.EXE
根据查询显示的系统版本自动进行下一步。
发表于 2021-8-1 12:38:14 | 显示全部楼层
保存为(.bat)文件
 楼主| 发表于 2021-8-1 12:46:44 | 显示全部楼层
回复 2# cmd1152
知道,我是说执行下面的怎么写代码
发表于 2021-8-1 12:49:50 | 显示全部楼层

  1. @echo off
  2. set "v1=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
  3. set "v2=HKLM\My_Hive\Microsoft\Windows NT\CurrentVersion"
  4. set "Hive=windows\system32\config\software"
  5. for %%i in (C ) do (
  6.     if /i "%%i:"=="%SystemDrive%" (
  7.         for /f "tokens=1,2*" %%a in ('reg query "%v1%"') do (
  8.             if /i "%%a"=="ProductName" (
  9.                 echo,系统分区是:%%i
  10.                 echo,原 系 统 是:%%c&set xt=%%c&echo,
  11.             )
  12.         )
  13.     ) else if exist "%%i:\%Hive%" (
  14.         reg load "HKLM\My_Hive" "%%i:\%Hive%" >nul
  15.         for /f "tokens=1,2*" %%a in ('reg query "%v2%"') do (
  16.             if /i "%%a"=="ProductName" (
  17.                 echo,系统分区是:%%i
  18.                 echo,原 系 统 是:%%c&set xt=%%c&echo,
  19.             )
  20.         )
  21.         reg unload "HKLM\My_Hive" >nul
  22.     )
  23. )
  24. if "%xt%"=="Windows10" (
  25.     start x:\DDD.EXE
  26. )
  27. if "%xt%"=="Windows7" (
  28.     start x:\fff.EXE
  29. )
复制代码
 楼主| 发表于 2021-8-1 14:37:44 | 显示全部楼层
本帖最后由 wlishihua 于 2021-8-1 14:54 编辑

回复 4# cmd1152
运行不了
查询的系统版本它不是固定的,有的是专业版,有的是企业版,所以在用Windows 10   Windows7 下面就无法执行,
@echo off
set "v1=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
set "v2=HKLM\My_Hive\Microsoft\Windows NT\CurrentVersion"
set "Hive=windows\system32\config\software"
for %%i in (C ) do (
    if /i "%%i:"=="%SystemDrive%" (
        for /f "tokens=1,2*" %%a in ('reg query "%v1%"') do (
            if /i "%%a"=="ProductName" (
                echo,系统分区是:%%i
                echo,原 系 统 是:%%c&set xt=%%c&echo,
            )
        )
    ) else if exist "%%i:\%Hive%" (
        reg load "HKLM\My_Hive" "%%i:\%Hive%" >nul
        for /f "tokens=1,2*" %%a in ('reg query "%v2%"') do (
            if /i "%%a"=="ProductName" (
                echo,系统分区是:%%i
                echo,原 系 统 是:%%c&set xt=%%c&echo,
            )
        )
        reg unload "HKLM\My_Hive" >nul
    )
)
if "%xt%"=="Windows 10 Pro" (
    start "" "X:\Program Files\jydn\CGI64.exe"
)
if "%xt%"=="Windows7" (
     start X:\Program Files\jydn\CGI641.exe
)
if "%xt%"=="Windows 10 Pro" (
    start "" "X:\Program Files\jydn\CGI64.exe"
)
如果查询是企业版就没法运行,
想了想,变通了一下。
if "%xt%"=="Windows 10 Pro" (
    start "" "X:\Program Files\jydn\CGI64.exe"
)
if "%xt%"=="Windows 10 Enterprise" (
    start "" "X:\Program Files\jydn\CGI64.exe"
)
if "%xt%"=="Windows7 ultimate" (
     start X:\Program Files\jydn\CGI641.exe

根据 系统版本号多弄了几IF就行了
谢谢!
发表于 2021-8-1 15:46:58 | 显示全部楼层
回复 1# wlishihua


没必要弄那么复杂:

@echo off
ver | find "6.1." > NUL &&  goto win7
ver | find "10.0." > NUL &&  goto win10
:win7
start X:\Program Files\jydn\CGI641.exe
exit
:win10
start "" "X:\Program Files\jydn\CGI64.exe"
exit
 楼主| 发表于 2021-8-1 16:11:23 | 显示全部楼层
回复 6# yakeyun
我这个是在PE系统下用的,
谢谢你!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 19:48 , Processed in 0.031805 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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