[Ayuda] Problema con un bat.

Iniciado por washanwer, 5 Julio 2008, 07:54 AM

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

washanwer

Hola a todos....!

Estoy quieriendo crear un bat, que elimine ciertos archivos, que agregre informacion al registro, mediante un .reg y me genere un reporte, donde se pueda mirar si, si realizo bien las acciones.

El problema esta, en que no elimina ni archivos ni carpetas, no se el codigo para importar el reg y tampoco se como hacer que genere un reporte. Ya busque y no encontre...

Me pueden corregir los codigos que esten mal y implementarle los codigos necesarios para que me genere el reporte.

Acá les dejo el codigo:



Salu2 y mil gracias!

carlitos.dll

después te posteo una solución, básicamente el problema es que el parámetro /a de del debe coincidir con los atributos del archivo.

leogtz

Le hice unos pequeños arreglitos a tu code.

Y puse unos comentarios en el Code, para que los leas, y sepas que hacer.

[code[quote author=carlitos.dll link=topic=219382.msg1040034#msg1040034 date=1215294436]
después te posteo una solución, básicamente el problema es que el parámetro /a de del debe coincidir con los atributos del archivo.

[/quote]]@echo off
color F0
cls
:Menu
cls
echo.
echo               ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo               º                                                º           
echo               ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo               º                                                º
echo               º     utilidad XXX                               º
echo               º                                                º 
echo               º                                                º
echo               º                                                º
echo               º                                                º
echo               ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo. 
echo. 
echo.
)
set ChoixMenu=''
::La variable %sChoice% no esta definida.
set /p ChoixMenu=%sChoice% (1,E) :
if '%ChoixMenu%'=='e' GOTO exit
if '%ChoixMenu%'=='E' GOTO exit
if '%ChoixMenu%'=='1' GOTO fix
::Un if por si el usuario no pone nada y solo da Enter.
if ["%ChoixMenu%"]==[""] (
cls
echo No has puesto nada!
pause>nul
goto:menu
)

::El siguiente goto no es necesario.
goto menu

:fix
cls
echo.
echo               ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo               º                                                º           
echo               ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo               º    xxxx                                         º
echo               º                                                º 
echo               ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo Presione cualquier tecla para comenzar con la desinfección del malware...
pause > NUL

::Quita el atributo /A, no es necesario como dijo carlitos.dll
::Te falto la s de la carpeta System32, o no se si es una carpeta creada por el Malware
Del /F /Q /A %0 "%WINDIR%\ystem32\drivers\Pinch.sys"
Del /F /Q /A %0 "%WINDIR%\system32\drivers\ZOE.exe"
Del /F /Q /A %0 "%WINDIR%\system32\drivers\MIK.exe"
Del /F /Q /A %0 "%WINDIR%\system32\drivers\downld"
Del /F /Q /A %0 "%WINDIR%\system32\drivers\down"
Del /F /Q /A %0 "%WINDIR%\WINDOWS\system32\kikiriki.exe"
Del /F /Q /A %0 "%WINDIR%\system32\kiu.exe"
cls
echo.
echo                       
echo                   
echo.
Pause
Código (perl) [Seleccionar]

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

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

carlitos.dll

Haz una prueba RockoX, te invito a que abras la consola:
cmd.exe
y escribas:
echo hola>archivo.txt
attrib +h +s archivo.txt
del /f /q archivo.txt
(¿Qué te dice? : Dice: No se encuentra ....)

Ahora haz lo siguiente:
del /f /q /ahs archivo.txt

¿Qué te dice? ¿Es necesario o no el parámetro /a?


washanwer

Mire, que no es necesario.

Pero tengo un problema, ahora cuando ejecuto el bat, paso las primeras pantallas y despues se desaparece. Saben por que?

Salu2!

carlitos.dll


@echo off
color F0
:menu
cls
echo.
echo               ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo               º                                                º           
echo               ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo               º                                                º
echo               º     utilidad XXX                               º
echo               º                                                º 
echo               º                                                º
echo               º                                                º
echo               º                                                º
echo               ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo. 
echo. 
echo.

echo 1 Eliminar malware
echo E (Salir)

set /p ChoixMenu="Selecciona (1,E): "
if "%ChoixMenu%"=="1" (goto fix)
if "%ChoixMenu%"=="e" (exit)
if "%ChoixMenu%"=="E" (exit)
goto menu

:fix
cls
echo.
echo               ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo               º                                                º           
echo               ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
echo               º    xxxx                                         º
echo               º                                                º 
echo               ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo Presione cualquier tecla para comenzar con la desinfección del malware...
pause > NUL

Del /F /Q /A "%WINDIR%\system32\drivers\Pinch.sys" >NUL
Del /F /Q /A "%WINDIR%\system32\drivers\ZOE.exe" >NUL
Del /F /Q /A "%WINDIR%\system32\drivers\MIK.exe" >NUL
Del /F /Q /A "%WINDIR%\system32\drivers\downld" >NUL
Del /F /Q /A "%WINDIR%\system32\drivers\down" >NUL
Del /F /Q /A "%WINDIR%\WINDOWS\system32\kikiriki.exe" >NUL
Del /F /Q /A "%WINDIR%\system32\kiu.exe" >NUL

cls
echo.
echo.                     
echo.                   
echo.
Pause
exit

washanwer

#6
Bueno ya voy de apoco, solo me restan 2 preguntas

Para agregar un .reg mediante un bat, el codigo seria asi :

La otraes, saben ustedes, como hacer para que al finalizar la eliminacion, este genere un reporte, con las acciones que tomo? (si saben, basta con un ejemplo, que ya me encargo yo mismo de seguir.)


Bueno ya va, meojor echele un vistazo y me dicen


Muchas gracias a los 2!

leogtz

Respecto a eso, no puedo ayudarte mucho sobre eso.
Pero seria bueno que checaras las variables de Entorno bien, ya que no creo que esa ruta esta bien.
Cita de: washanwer en  6 Julio 2008, 10:47 AM
Bueno ya voy de apoco, solo me restan 2 preguntas

Para agregar un .reg mediante un bat, el codigo seria asi :

regedit /s %WINDIR%\Documents and Settings\%userprofile%\Escritorio\*****\***.reg


La otra es, saben ustedes, como hacer para que al finalizar la eliminacion, este genere un reporte, con las acciones que tomo? (si saben, basta con un ejemplo, que ya me encargo yo mismo de seguir.)


Y sobre la ultima duda, puedes agregar unos Errorlevel`s para saber si el proceso se ejecuto con exito (Me refiero a los Del`s), u otra forma seria hacer unos If exist`s, para saber si esta o no el archivo, asi sabes si se cumplio o no la accion.

Saludos! :)
Código (perl) [Seleccionar]

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

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

washanwer

hola rockox,

Sabras lo de generar un reporte como pongo aqui:


CitarLa otra es, saben ustedes, como hacer para que al finalizar la eliminacion, este genere un reporte, con las acciones que tomo? (si saben, basta con un ejemplo, que ya me encargo yo mismo de seguir.)

Salu2!

leogtz

Aver te pondre dos ejemplos:

El primero es el que mas recomiendo.
El segundo tienen un fallo, a la hora de ejecutarlo repetidas veces.
@echo off
cd %homedrive%\
::Supongamos que tengo un archivo llamado Eliminame.txt en %homedrive%\
::Y quiero saber si se elimino, para asi levantar un reporte.
del /f /q Eliminame.txt
if exist Eliminame.txt (
cls
echo El archivo no pudo ser eliminado!
pause>nul
goto:eof
) else (
cls
echo El archivo se elimino con exito!
pause>nul
goto:Eof
)


@echo off
cd %homedrive%\
::Segundo ejemplo con Errorlevel`s
::Supongamos que quiero eliminar un archivo llamado Eliminame.txt en %homedrive%\
::Para asi levantar un reporte si se elimino o no.
del /f /q Eliminame.txt>nul
if %errorlevel%==1 (
cls
echo El archivo no se pudo eliminar!
pause>nul
goto:EOf
) else (
cls
echo El Archivo se elimino con Exito!
)


Saludos.
Código (perl) [Seleccionar]

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

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