[BATCH] Ayuda con este script sobre "if exist" y "takeown" (SOLUCIONADO)

Iniciado por SuperDraco, 30 Noviembre 2009, 04:00 AM

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

SuperDraco

Hola, no se que pasa que algo tengo estoy haciendo mal en este script... pero cuando el script llega al comando de "if exist %Windir%\system32\Ribbons.scr (" y luego al "takeown /f", se cierra y no me da tiempo a leer el error!, no puedo hacer un "pause" para leerlo tampoco, aunque intentandolo leer, creo que dice "No se esperaba /F en este momento", pero eso no es posible... está bien!, si el script lo pruebo sin los "If", osea, si pruebo solamente un "takeown /F %WINDIR%\winsxs\PhotoScreensaver* /R" no me da problemas, y el resto del script es casi identico y funciona, nos e que debe pasar... necesito de vuestra ayuda  :-(

:200
cls
color 07
echo+
echo  Buscando salvapantallas de Windows 7.
sleep 1
cls
echo+
echo  Buscando salvapantallas de Windows 7..
sleep 1
cls
echo+
echo  Buscando salvapantallas de Windows 7...
sleep 1

if not exist %Windir%\system32\bubbles.scr (
color 02
cls
echo+
echo  No se han encontrado salvapantallas de Windows 7.
sleep 3
cls
) ELSE (
goto :29
)

:29
cls
if exist %Windir%\system32\Ribbons.scr (
color 02
cls
echo+
echo  Eliminando salvapantallas de Windows 7.
sleep 1
cls
echo+
echo  Eliminando salvapantallas de Windows 7..
sleep 1
cls
echo+
echo  Eliminando salvapantallas de Windows 7...
sleep 1


takeown /F %WINDIR%\winsxs\PhotoScreensaver* /R
icacls %WINDIR%\winsxs\PhotoScreensaver* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\x86_microsoft-windows-PhotoScreensaver* /R
icacls %WINDIR%\winsxs\x86_microsoft-windows-PhotoScreensaver* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\amd64_microsoft-windows-PhotoScreensaver* /R
icacls %WINDIR%\winsxs\amd64_microsoft-windows-PhotoScreensaver* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\ssText3d* /R
icacls %WINDIR%\winsxs\ssText3d* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\x86_microsoft-windows-ssText3d* /R
icacls %WINDIR%\winsxs\x86_microsoft-windows-ssText3d* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\amd64_microsoft-windows-ssText3d* /R
icacls %WINDIR%\winsxs\amd64_microsoft-windows-ssText3d* /grant Administradores:(D,WDAC) /T
takeown /F %Windir%\syswow64\bubbles.scr
icacls %Windir%\syswow64\bubbles.scr /grant Administradores:(D,WDAC)
takeown /F %Windir%\system32\bubbles.scr
icacls %Windir%\system32\bubbles.scr /grant Administradores:(D,WDAC)
takeown /F %WINDIR%\winsxs\bubbles* /R
icacls %WINDIR%\winsxs\bubbles* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\x86_microsoft-windows-bubbles* /R
icacls %WINDIR%\winsxs\x86_microsoft-windows-bubbles* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\amd64_microsoft-windows-bubbles* /R
icacls %WINDIR%\winsxs\amd64_microsoft-windows-bubbles* /grant Administradores:(D,WDAC) /T
takeown /F %Windir%\syswow64\Mystify.scr
icacls %Windir%\syswow64\Mystify.scr /grant Administradores:(D,WDAC)
takeown /F %Windir%\system32\Mystify.scr
icacls %Windir%\system32\Mystify.scr /grant Administradores:(D,WDAC)
takeown /F %WINDIR%\winsxs\Mystify* /R
icacls %WINDIR%\winsxs\Mystify* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\x86_microsoft-windows-mystify* /R
icacls %WINDIR%\winsxs\x86_microsoft-windows-mystify* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\amd64_microsoft-windows-mystify* /R
icacls %WINDIR%\winsxs\amd64_microsoft-windows-mystify* /grant Administradores:(D,WDAC) /T
takeown /F %Windir%\syswow64\Ribbons.scr
icacls %Windir%\syswow64\Ribbons.scr /grant Administradores:(D,WDAC)
takeown /F %Windir%\system32\Ribbons.scr
icacls %Windir%\system32\Ribbons.scr /grant Administradores:(D,WDAC)
takeown /F %WINDIR%\winsxs\Ribbons.scr* /R
icacls %WINDIR%\winsxs\Ribbons.scr* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\x86_microsoft-windows-ribbons* /R
icacls %WINDIR%\winsxs\x86_microsoft-windows-ribbons* /grant Administradores:(D,WDAC) /T
takeown /F %WINDIR%\winsxs\amd64_microsoft-windows-ribbons* /R
icacls %WINDIR%\winsxs\amd64_microsoft-windows-ribbons* /grant Administradores:(D,WDAC) /T
del /q /f /s %Windir%\winsxs\PhotoScreensaver*
del /q /f /s %Windir%\winsxs\amd64_microsoft-windows-PhotoScreensaver*
del /q /f /s %Windir%\winsxs\x86_microsoft-windows-PhotoScreensaver*
del /q /f %Windir%\system32\bubbles.scr
del /q /f %Windir%\syswow64\bubbles.scr
del /q /f /s %Windir%\winsxs\bubbles*
del /q /f /s %Windir%\winsxs\amd64_microsoft-windows-bubbles*
del /q /f /s %Windir%\winsxs\x86_microsoft-windows-bubbles*
del /q /f %Windir%\system32\Mystify.scr
del /q /f %Windir%\syswow64\Mystify.scr
del /q /f /s %Windir%\winsxs\Mystify*
del /q /f /s %Windir%\winsxs\amd64_microsoft-windows-mystify*
del /q /f /s %Windir%\winsxs\x86_microsoft-windows-mystify*
del /q /f %Windir%\system32\Ribbons.scr
del /q /f %Windir%\syswow64\Ribbons.scr
del /q /f /s %Windir%\winsxs\Ribbons.*
del /q /f /s %Windir%\winsxs\amd64_microsoft-windows-ribbons*
del /q /f /s %Windir%\winsxs\x86_microsoft-windows-ribbons*
del /q /f /s %Windir%\winsxs\ssText3d*
del /q /f /s %Windir%\winsxs\amd64_microsoft-windows-ssText3d*
del /q /f /s %Windir%\winsxs\x86_microsoft-windows-ssText3d*
pause
) ELSE (
goto :201
)












:201
cls
color 07
echo+
echo  Buscando imagenes de cuentas de usuario de Windows 7.
sleep 1
cls
echo+
echo  Buscando imagenes de cuentas de usuario de Windows 7..
sleep 1
cls
echo+
echo  Buscando imagenes de cuentas de usuario de Windows 7...
sleep 1
No he vuelto, solo estoy de paso.

leogtz

#1
La mayoría de las veces que se cierra sin avisar es porque no se cierra un parentesis.

En dado caso, si avisara de un error que no se pueda ver, corre el script desde el CMD.EXE

Abre una ventana de comandos y corre el bat normalmente

c:\>script.bat

Cuando estés tratando con archivos, mas vale siempre entre comillarlos:

if not exist "%Windir%\system32\bubbles.scr"


Igual creo que deberias hacerlo con los parametros de los comandos:
icacls %WINDIR%\winsxs\PhotoScreensaver* /grant "Administradores:(D,WDAC)" /T
rem Pongo las comillas para evitar problemas luego con los parentesis del IF.

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

SuperDraco

lo he intentado como tu me dices Leo, pero no me deja correr un "takeown" despues de un "if exists"  >:(
No he vuelto, solo estoy de paso.

SuperDraco

No se porque esto tiene que ser así... pero lo he conseguido haciendo un:

cmd /c if exist %WINDIR%\Boot\EFI\en-us (
takeown /F %WINDIR%\Boot\EFI\* /R


Si en cambio hago:

if exist %WINDIR%\Boot\EFI\en-us (
cmd /c takeown /F %WINDIR%\Boot\EFI\* /R


no me deja, en fin. pero ya está, gracias.

No he vuelto, solo estoy de paso.

Angel Doze

Hola loko,

Lo que pasa es que no estas cerrando el parentesis que abres ( , debes cerrarlo y seguro te debe funcionar bien )


if exist %WINDIR%\Boot\EFI\en-us (
cmd /c takeown /F %WINDIR%\Boot\EFI\* /R )


Salu2!