Quiero ejecutar el comando cuando encuentro el resultado pero parece que no funcionó. Los nombres de nuestras computadoras son algo así como HS-33-123-WC, HS-34-456-X. El resultado parece no ser el que quiero. Parece que no hice el script correcto si %%a==WC goto dhcp y si %%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
:fin @salir /b
Respuesta1
Algo como esto:
@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
Respuesta2
%%a
solo está disponible dentro del bucle.
Deberías dentro del bucle, establecerle una variable local. Agregue el comando:
set var=%%a
luego utilícelo %var%
en el siguiente código.