Выполнить команду после нахождения результата с помощью 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%в следующем коде.

Связанный контент