Ayuda con este script porfavor "IF" (SOLUCIONADO)

Iniciado por SuperDraco, 11 Noviembre 2009, 19:12 PM

0 Miembros y 1 Visitante están viendo este tema.

SuperDraco

estoy intentando crear esto, pero lo hago mal, la carpeta no existe y haga lo que haga siempre va al ":1"

Código (dos) [Seleccionar]

cls
echo+
echo Buscando idiomas innecesarios del Boot.
sleep 1
cls
echo+
echo Buscando idiomas innecesarios del Boot..
sleep 1
cls
echo+
echo Buscando idiomas innecesarios del Boot...
sleep 1

if exist %WINDIR%\Boot\EFI\cs-CZ (
cls
echo+
echo Idiomas innecesarios del Boot encontrados.
sleep 1
cls
echo+
echo Idiomas innecesarios del Boot encontrados..
sleep 1
cls
echo+
echo Idiomas innecesarios del Boot encontrados...
sleep 1
cls
) ELSE (
goto :1
)

:1
cls
echo+
echo Eliminando idiomas innecesarios del Boot.
sleep 1
cls
echo+
echo Eliminando idiomas innecesarios del Boot..
sleep 1
cls
echo+
echo Eliminando idiomas innecesarios del Boot...
sleep 1
rd /s /q %WINDIR%\Boot\EFI\cs-CZ
rd /s /q %WINDIR%\Boot\EFI\da-DK
rd /s /q %WINDIR%\Boot\EFI\de-DE
rd /s /q %WINDIR%\Boot\EFI\el-GR
rd /s /q %WINDIR%\Boot\EFI\fi-FI
rd /s /q %WINDIR%\Boot\EFI\fr-FR
rd /s /q %WINDIR%\Boot\EFI\hu-HU
rd /s /q %WINDIR%\Boot\EFI\it-IT
rd /s /q %WINDIR%\Boot\EFI\ja-JP
rd /s /q %WINDIR%\Boot\EFI\ko-KR
rd /s /q %WINDIR%\Boot\EFI\nb-NO
rd /s /q %WINDIR%\Boot\EFI\nl-NL
rd /s /q %WINDIR%\Boot\EFI\pl-PL
rd /s /q %WINDIR%\Boot\EFI\pt-BR
rd /s /q %WINDIR%\Boot\EFI\pt-PT
rd /s /q %WINDIR%\Boot\EFI\ru-RU
rd /s /q %WINDIR%\Boot\EFI\sv-SE
rd /s /q %WINDIR%\Boot\EFI\tr-TR
rd /s /q %WINDIR%\Boot\EFI\zh-CN
rd /s /q %WINDIR%\Boot\EFI\zh-HK
rd /s /q %WINDIR%\Boot\EFI\zh-TW

No he vuelto, solo estoy de paso.

<ИΘZIЭ(ŦB>

Claro pitoloko! Se va al :1 porque aunque se cumpla la primera condición no escribiste nada al final que te lleve la ejecución al inicio de nuevo. Así pues, cuando termina de procesar ese código se sale del IF, omite el ELSE y sigue con la línea siguiente, la cual, como ves, es el :1.
Código (dos) [Seleccionar]

If exist %WINDIR%\Boot\EFI\cs-CZ (
    [esto se cumple y sigue de largo, no se devuelve]
) ELSE (
    goto :1
)

:1
[código]


Tendrías que usar una etiqueta inicial para devolverte en caso de que se cumpla tu sentencia, que es lo que entendí deseas hacer. Tendrías que agregarle algo así:

Código (dos) [Seleccionar]

:Inicio
If exist %WINDIR%\Boot\EFI\cs-CZ (
    [código]
    goto Inicio
) ELSE (
    goto :1
)

:1
[código]


De ese modo el código de :1 no se ejecuta a menos que no se cumpla la primera condición, pues entraría en ELSE que llama a :1.

Deja tus comentarios a ver si te sirvió.

SuperDraco

uy, me olvidaba de este post jaja, gracias por la ayuda, ya comprendí el funcionamiento del if!

saludos
No he vuelto, solo estoy de paso.