我习惯于在 Linux 中编写脚本程序,但现在我需要为 Windows 编写一个非常简单的脚本,它根据操作系统的版本执行某些操作。
我看到 ver
命令返回版本,但我不知道如何将此命令的输出与字符串进行比较。
在伪代码中我只需要:
version = system('ver')
if version > WINDOWS_XP_VERSION then
do_something();
end if
或者好吧,到现在为止也可以这样做了:
version = system('ver')
if version in [WINDOWS_VISTA_VERSION, WINDOWS_7_VERSION] then
do_something();
end if
我主要关心的是如何比较命令的输出。
最佳答案
set Version=
for /f "skip=1" %%v in ('wmic os get version') do if not defined Version set Version=%%v
for /f "delims=. tokens=1-3" %%a in ("%Version%") do (
set Version.Major=%%a
set Version.Minor=%%b
set Version.Build=%%c
)
set GTR_XP=
if %Version.Major%==5 if %Version.Minor% GTR 1 set GTR_XP=1
if %Version.Major% GTR 5 set GTR_XP=1
if defined GTR_XP (
...
)
关于windows - 如何比较批处理脚本中的 Windows 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808847/