使用 FOR /f 找到结果后运行命令

使用 FOR /f 找到结果后运行命令

我想在找到结果时运行命令,但似乎没有用。我们的计算机名称类似于 HS-33-123-WC、HS-34-456-X 结果似乎不是我想要的。似乎我没有制作正确的脚本 if %%a==WC goto dhcp and if %%a==X goto static

REM Display the 4th group of character(s) after -
wmic computersystem get name
for /f "tokens=4 delims=-" %%a in ("%computername%") do (echo %%a && goto next)


:next
if  %%a==WC goto dhcp
if %%a==X goto static


:static
echo Static
pause
goto end

:dhcp
echo This is DHCP
pause
goto end

:结束@退出/b

答案1

像这样:

@echo off
REM Display the 4th group of character(s) after -

for /f "tokens=4 delims=-" %%a in ("%computername%") do (
                                                         echo "%%a"
                                                         set Var=%%a
                                                        )

if  "%Var%"=="WC" goto dhcp
if "%Var%"=="X" goto static
:end
exit

:static
echo Static
pause
goto end

:dhcp
echo This is DHCP
pause
goto end

答案2

%%a仅在循环内可用。

您应该在循环内部为其设置一个局部变量。添加命令:

set var=%%a

%var%然后在下面的代码中使用。

相关内容