我正在开发一个脚本,目标是仅在Windows 10.0或更高版本上执行操作。
我试图启动我的代码,但是这两个动作都已执行,在Win 2016上,批处理通常应仅在if / else中执行与goto相关的程序
@echo off
setlocal
for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
echo %version%
pause
if "%version%" geq "10.0" ( goto :AddWinDefenderExclusion )
else ( goto :NoWinDefenderExclusion )
:AddWinDefenderExclusion
echo Windows Defender Exclusion will be added
:NoWinDefenderExclusion
echo No Windows Defender Exclusion to add (Not a Windows 2016 or greater)
endlocal
您能帮我实现版本控制,然后采取适当的措施吗?
答案 0 :(得分:0)
您应在:AddWinDefenderExclusion 和:NoWinDefenderExclusion 标签的末尾添加goto :eof
([SS64]: GOTO)。从技术上讲,您不必在最后一个步骤中执行此操作(因为它将到达 eof ),但是您应该执行以下操作:
script.bat :
@echo off
setlocal
for /f "tokens=4-5 delims=. " %%i in ('ver') do (
set VERSION_MAJ=%%i
set VERSION_MIN=%%j
)
set MAJ_REQ=10
set MIN_REQ=0
echo %VERSION_MAJ%.%VERSION_MIN%
if %VERSION_MAJ% gtr %MAJ_REQ% (
goto :AddWinDefenderExclusion
) else if %VERSION_MAJ% equ %MAJ_REQ% (
if %VERSION_MIN% geq %MIN_REQ% (
goto :AddWinDefenderExclusion
)
)
goto :NoWinDefenderExclusion
goto :eof
:AddWinDefenderExclusion
echo Windows Defender Exclusion will be added
pause
goto :eof
:NoWinDefenderExclusion
echo No Windows Defender Exclusion to add (Not a Windows 2016 or greater)$
pause
goto :eof
答案 1 :(得分:0)
您可能可以使用wmic最简单的方法:
@Echo Off
WMIC OS Where "Version Like '__.%%'" Get Status 2> NUL | Find "Status" > NUL && (
Echo Windows Defender Exclusion will be added
) || Echo No Windows Defender Exclusion to add [Not Windows 2016 or greater]
Pause
如果您的脚本根本不适合Windows 10之前的任何版本的Windows,那么这可能会更好:
@Echo Off
WMIC OS Where "Version Like '__.%%'" Get Status 2> NUL | Find "Status" > NUL || Exit /B
Echo Windows Defender Exclusion will be added & Pause
最后一行显然是您提供自己的代码的地方。
答案 2 :(得分:0)
感谢您的回答。
这是我的最终代码:
@echo off
setlocal
for /f "tokens=4-5 delims=. " %%i in ('ver') do (
set VERSION=%%i
)
if %version% GEQ 10 (
goto :ADDEXCLUSION
) else (
goto :NOEXCLUSION
)
:ADDEXCLUSION
echo ADDEXCLUSION
pause
goto :eof
:NOEXCLUSION
echo NOEXCLUSION
pause
goto :eof
我认为如果GEQ
仅可与数字一起使用,
不带引号的它比较数字,并在变量%version%
上加上引号,并对其值进行比较。就我而言,我的脚本检查版本号(前2位数字)。
谢谢大家。