Saludos,
- Los
For tienen la limitación de NO actualizar las variables hasta que dicho
For haya terminado, tienes que especificar
EnableDelayedExpansion para cambiar este comportamiento y utilizar
! en lugar de
% para referenciar variables.
- En archivos Batch tienes que usar siempre doble
% a no ser que se traten de variables de entorno
%variable%- El operador en
If EQU sirve para comparar valores numéricos, usa
== para comparar texto y usa las comillas para aclararlo, asegúrate de especificar exactamente e texto completo a comparar, en tu caso debe llevar cuatro espacios delante
- Para obtener caracteres especiales como vocales tildadas (
á) debes buscar el equivalente haciendo un
Echo á>atilde.txt, luego en
atilde.txt tienes el caracter que debes usar para obtener
á@Echo off
SetLocal EnableDelayedExpansion
For /F %%a In (ip.txt) Do (
Ping %%a | Find "0%% perdidos">trash.txt
Set /P VAR=<trash.txt
If "!VAR!" == " (0%% perdidos)," (
Echo El equipo %%a está operativo
) Else (
Echo El equipo %%a no está operativo
)
)
EndLocal
Pause
----------------
---- Error de GeSHi?
Ping %%a | Find "0%% perdidos">trash.txt
If "
!VAR!" == " (0% style="color: #448888;">% perdidos)," ( Echo El equipo
%%a está operativo
Echo El equipo
%%a no está operativo
)
)