FOR /f를 사용하여 결과를 찾은 후 명령을 실행합니다.

FOR /f를 사용하여 결과를 찾은 후 명령을 실행합니다.

결과를 찾을 때 명령을 실행하고 싶은데 작동하지 않는 것 같습니다. 우리 컴퓨터 이름은 HS-33-123-WC, HS-34-456-X와 같습니다. 결과가 내가 원하는 결과로 나오지 않는 것 같습니다. if %%a==WC goto dhcp 및 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

:끝 @exit /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%그런 다음 다음 코드에서 사용하십시오 .

관련 정보