我想从批处理和结果启动exe文件检测Windows版本
示例代码不起作用
@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
为了testingexe的地方,我开始记事本文件
但是这个代码不工作。
>=
是一个无效的比较运算符。 尝试geq
(其他lss
@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的操作系统,我会沿着这条路线, (尤其是从技术上说,输出版本不是操作系统版本) 。
@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