Führen Sie den Befehl aus, nachdem Sie das Ergebnis mit FOR /f gefunden haben.

Führen Sie den Befehl aus, nachdem Sie das Ergebnis mit FOR /f gefunden haben.

Ich möchte den Befehl ausführen, wenn ich das Ergebnis finde, aber es scheint, dass es nicht funktioniert. Unsere Computernamen sind so etwas wie HS-33-123-WC, HS-34-456-X. Das Ergebnis scheint nicht das zu sein, was ich will. Es scheint, dass ich nicht das richtige Skript geschrieben habe, wenn %%a==WC zu DHCP geht und wenn %%a==X zu statisch geht

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

:Ende @exit /b

Antwort1

Etwas wie das:

@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

Antwort2

%%aist nur innerhalb der Schleife verfügbar.

Sie sollten innerhalb der Schleife eine lokale Variable festlegen. Fügen Sie den Befehl hinzu:

set var=%%a

dann %var%im folgenden Code verwenden.

verwandte Informationen