Board logo

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

作者: wlishihua    时间: 2021-8-1 10:52     标题: 批处理怎样根据系统版本自动执行相对应的程序?

  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
根据查询显示的系统版本自动进行下一步。
作者: cmd1152    时间: 2021-8-1 12:38

保存为(.bat)文件
作者: wlishihua    时间: 2021-8-1 12:46

回复 2# cmd1152
知道,我是说执行下面的怎么写代码
作者: cmd1152    时间: 2021-8-1 12:49

  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. )
复制代码

作者: wlishihua    时间: 2021-8-1 14:37

本帖最后由 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就行了
谢谢!
作者: yakeyun    时间: 2021-8-1 15:46

回复 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
作者: wlishihua    时间: 2021-8-1 16:11

回复 6# yakeyun
我这个是在PE系统下用的,
谢谢你!




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