使用 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%然後在下面的程式碼中使用。

相關內容