繁体   English   中英

批处理文件:-检测Windows版本并运行exe文件

[英]Batch file:- Detect windows version and run exe file

我想从批处理中检测Windows版本,并根据结果启动exe文件

示例代码不起作用

@echo off
setlocal
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
if "%version%" geq "6.2" goto netfx_4
if "%version%" == "6.1" goto netfx_35
if "%version%" == "6.0" goto netfx_35

:netfx_35
 start "C:\Users\Ankur\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk"
exit 1
goto :EOF

:netfx_4
start "C:\Users\Ankur\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk"
exit 1
goto :EOF

endlocal

在exe位置进行测试以启动记事本文件

但是此代码不起作用。

>=是无效的比较运算符。 尝试geq (其他是equ neq lss leq gtr

@echo off
setlocal
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
if "%version%" geq "6.2" goto netfx_4
if "%version%" == "6.1" goto netfx_35
if "%version%" == "6.0" goto netfx_35

:netfx_35
 start start "" name.exe
exit 1
goto :EOF

:netfx_4
start "" name.exe
exit 1
goto :EOF

endlocal

注意:-EXE应该位于批处理文件的相同位置

因为您要查找的版本是使用WMIC的OS,所以我会顺其自然(特别是因为ver的输出在技术上不是OS版本)

@ECHO OFF

FOR /F "SKIP=1 TOKENS=1-2 DELIMS=." %%A IN ('WMIC OS GET VERSION'
) DO FOR %%C IN (%%A%%B) DO IF %%C GEQ 62 GOTO :netfx_4

:netfx_35
START "" "%AppData%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad35.lnk"
GOTO :EOF

:netfx_4
START "" "%AppData%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad4.lnk"
GOTO :EOF

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM