[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

  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
根据查询显示的系统版本自动进行下一步。

保存为(.bat)文件
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

回复 2# cmd1152
知道,我是说执行下面的怎么写代码

TOP

  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. )
复制代码
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

本帖最后由 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就行了
谢谢!

TOP

回复 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

TOP

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

TOP

返回列表