
标题: [系统相关] 批处理怎样根据系统版本自动执行相对应的程序? [打印本页]
作者: wlishihua 时间: 2021-8-1 10:52 标题: 批处理怎样根据系统版本自动执行相对应的程序?
- @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&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&echo,
- )
- )
- reg unload "HKLM\My_Hive" >nul
- )
- )
- 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
- @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%"=="Windows10" (
- start x:\DDD.EXE
- )
- if "%xt%"=="Windows7" (
- start x:\fff.EXE
- )
复制代码
作者: 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 |