我正在寻找一个批处理文件,根据Windows版本向我发送正确的路径这个我使用过的早期代码,必须要有办法。 “如果比win7更早跳到了”这不适用于Windows 10.我无法理解这个计算,我认为必须有一个简单的方法来写这个。
FOR /F "tokens=*" %%a IN ('ver') DO (
SET ver=%%a
)
SET v1=%ver:~27,1%
SET v2=%ver:~29,1%
IF %v1% LSS 6 GOTO JUMPTO
IF %v2% LSS 2 GOTO JUMPTO
call %~d0\bat\Timecounter\startwindowsupdate.bat
start %~d0\portup\portup.exe /u
GOTO:end
:JUMPTO
ECHO Windows version too old! Run windows update manualy!
PAUSE
:end
Exit
ver:Microsoft Windows [Version 10.0.10240]
尝试了一些事情(对我来说更容易理解)
@Echo OFF
Title Portup
ver | find "5.1" >nul && goto toold
ver | find "6.0" >nul && goto toold
ver | find "6.1" >nul && goto toold
ver | find "6.2" >nul && goto goodtogo
ver | find "6.3" >nul && goto goodtogo
ver | find "10.0" >nul && goto goodtogo
:toold
ECHO Windows to old. We don't support this OS
pause >nul
call %~d0\bat\avslutt.bat
:goodtogo
call %~d0\portup\portup.exe /u
答案 0 :(得分:1)
试试这个:
@echo off
for /F "tokens=4,5 delims=. " %%a in ('ver') do set "version=%%a%%b"
if %version% leq 61 goto tooOld
[edit]:简化代码......
答案 1 :(得分:0)
基于wmic os get /value
命令输出的下一个代码段可以提供帮助:
@ECHO OFF >NUL
SETLOCAL enableextensions
for /F "tokens=1-3 delims=. " %%G in ('
wmic os get Version^, WindowsDirectory ^| findstr "\."
') do (
set /A "_ver1=%%G"
set /A "_ver2=%%H"
set /A "_ver3=%%I"
)
set _ver
Windows 8 上的输出:
==>ver
Microsoft Windows [Version 6.3.9600]
==>D:\bat\SO\31855974.bat
_ver1=6
_ver2=3
_ver3=9600
==>