elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:17  


Tema destacado: Únete al Grupo Steam elhacker.NET

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  Recorrer directorios y generar log (BATCH)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recorrer directorios y generar log (BATCH)  (Leído 1,463 veces)
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


Echo "Aprendiendo Batch."


Ver Perfil
Recorrer directorios y generar log (BATCH)
« en: 29 Junio 2011, 18:27 »

Hello.. sera que es posible recorrer los directorio y subdirectorios y generar un log.txt con todo lo escaneado algo o algo asi nombre de carpeta y los archivos como lo muestra la funcion dir no tengo ni idea por donde emprezar  :-\


« Última modificación: 29 Junio 2011, 18:33 por Leo Gutiérrez. » En línea

"Pensando en Batch" XD
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #1 en: 29 Junio 2011, 19:43 »

 :¬¬ Me has pillado con ganas de hacerle el trabajo a los demás  :¬¬

Te recomiendo leer un manual básico, todo eso lo aprendes fácil.

Solamente tienes que redireccionar. (>, >>)

Código
Dir /B /S > Log.txt



Código
Dir /?

Código:
/A          Muestra los archivos con los atributos especificados.
atributos    D  Directorios             
             H  Archivos ocultos       
             S  Archivos de sistema
             -  Prefijo de exclusión



Algo más sofisticado, creo que así es más o menos como lo quieres (hecho en 5 minutos +o- XD):

Código
@echo off
Title=Foro.Elhacker.Net

REM Simple LOG de directorios.

REM By PiToLoKo
REM Foro.Elhacker.Net
 
echo+   >> "%temp%\Log.txt"
echo ============================= >> "%temp%\Log.txt"
Echo Fecha del escaneo: %Date%     >> "%temp%\Log.txt"
echo ============================= >> "%temp%\Log.txt"
echo+   >> "%temp%\Log.txt"
 
Echo+ & echo+ El directorio actual es:
Echo  %cd%
Echo+ & echo+ Pulse una tecla para empezar el escaneo...
pause >nul 2>&1
 
For /F "tokens=*" %%a in ('Dir /B /S /A:D') do (
Set folder=%%a
Call :Scan
)
 
Title=foro.elhacker.net
echo+
echo  ===========================
Echo   El escaneo ha finalizado.
echo  ===========================
Notepad "%temp%\Log.txt"
Pause >nul
exit
 
:Scan
Title=Escaneo en progreso..."
Echo Escaneando "%folder%"
 
Echo -=[ %folder% ]=- >> "%temp%\Log.txt"
echo+  >> "%temp%\Log.txt"
 
Dir /B /A-D "%folder%">> "%temp%\Log.txt"
echo+ >> "%temp%\Log.txt"
 
goto:eof
 

En fin, se pueden hacer muchas cosas... xD


« Última modificación: 29 Junio 2011, 20:25 por pitoloko » En línea

pa que
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


Echo "Aprendiendo Batch."


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #2 en: 29 Junio 2011, 20:48 »

A ok voy a probar e intento modificar con la funcion que quiero realizar... Es que la verdad a veces veo unos comandos que ni me imagino de donde salieron como hiciste para saber tanto de Batch pitoloko  :-\
En línea

"Pensando en Batch" XD
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #3 en: 29 Junio 2011, 21:25 »

como hiciste para saber tanto de Batch pitoloko  :-\

LEER manuales  :¬¬

LEER la ayuda del comando "/?"

Y practicar  :xD

Y postear mis dudas, como tú  :-[

Aqui el verdadero experto en Batch es el mod xD
En línea

pa que
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


Echo "Aprendiendo Batch."


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #4 en: 29 Junio 2011, 22:33 »

A ok por eso me estoy poniendo a estudiar bastande empezando por lo basico. Pero esto es para hacer un pequeña utilidad para limpiar el pendrive algo parecido a un pequeño antivirus en batch que me cambie los atributos de aarchivos y carpetas ocultas borre los archivos .exe meñores a "x" tamaño las carpetas vacias y al final me de un reporte de lo que ha hecho... lo unico que eso esta muy avanzado para mi conocimiento  :-\ pero bueno espero con esfuerzo y la ayuda de expertos como tu y los moderadores del foro poder hacerlo pronto...  :(
En línea

"Pensando en Batch" XD
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #5 en: 29 Junio 2011, 22:57 »

Lo de las carpetas 0 bytes, en batch me dio malos resultados, el comando DIR me mentía  :xD, así que te recomiendo este vbs que me dijo Novlucker, lo ejecutas desde el batch y listo...


"Comprobar_Carpetas_vacias.vbs"

Código
 
Dim objFileSystem, objTheFolder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objTheFolder = objFileSystem.GetFolder(wscript.arguments(0))
 
If objTheFolder.size > 1 then
wscript.quit(0)
else
wscript.quit(1)
end if
 


para usarlo en un batch, puedes hacerlo por ejemplo así:

Código
@echo off
:Carpetas vacias
For /F "Tokens=*" %%a in ('dir /B /S /A:D "RUTA_DE_LA_CARPETA"') do (
set folder=%%a
call :Comprobar carpeta)
 
 
:Comprobar carpeta
"Comprobar_Carpetas_vacias.vbs" "!folder!"
If %errorlevel% EQU 0 (
goto:eof
) ELSE (
rd /q "!carpeta!\"
goto:eof
)



Para los archivos menores de X bytes. Puedes usar esto:

~z - display the file size

Aunque como ya he dicho, no recomiendo usarlo sobre carpetas, engaña mucho. En cambio si lo usas sobre archivos nunca me ha dado problemas, y he hecho muchisimas pruebas :xD

en fin aqui un script que posteé hace tiempo:

Código
@echo off
setlocal enabledelayedexpansion
 
for /f "tokens=*" %%a in ('dir /B /s /A-D "%systemdrive%\*.exe"') do (
set archivo=%%a
set size=%%~za
call :log
)
 
 
:log
If !size! EQU 0 (
echo !archivo! >> log.txt
echo !size! >> log.txt
echo+ >> log.txt
del /Q /F "!archivo!"
goto:eof
) ELSE (
goto:eof)

Modificalo a tu gusto  :xD

También puedes usar el script de Novlucker, el vbs, solo hay que modificar una cosa:

Set objTheFolder = objFileSystem.GetFolder


Set objTheFolder = objFileSystem.getfile

PD: objTheFolder  no importa, es el nombre de la variable.

saludos.
« Última modificación: 29 Junio 2011, 23:06 por pitoloko » En línea

pa que
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


Echo "Aprendiendo Batch."


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #6 en: 29 Junio 2011, 23:14 »

Voy a ver que hago con tanto codigo por lo menos separados los hago funcionar bien y les hago pequeñas modificaciones  :rolleyes: lo dificil va a ser para unir todo eso y llegar a lo que quiero pero vamos a ver si lo puedo hacer nada es imposible para una mente dispuesta dicen por hay.  :laugh:
En línea

"Pensando en Batch" XD
pitoloko


Desconectado Desconectado

Mensajes: 2.500


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #7 en: 30 Junio 2011, 01:06 »

Voy a ver que hago con tanto codigo por lo menos separados los hago funcionar bien y les hago pequeñas modificaciones  :rolleyes: lo dificil va a ser para unir todo eso y llegar a lo que quiero pero vamos a ver si lo puedo hacer nada es imposible para una mente dispuesta dicen por hay.  :laugh:

Unificarlo es fácil, ya te he dado lo más dificil.

Por cierto, se me olvidó comentar que para eliminar carpetas vacías, conviene borrar primero los archivos ocultos "desktop.ini" que genera automáticamente windows. A menos que uses un icono personalizado para cada carpeta... es un archivo inservible, y obviamente esas carpetas ya no se considerarían vacías, aqui otro ejemplo mio sacado de un batch por si te sirve xD


Código
@echo off
if not exist "Comprobar_accesos_directos_rotos.vbs" (goto :next37)
if not exist "Comprobar_Carpetas_vacias.vbs" (goto :next37)
 
setlocal enabledelayedexpansion
 
 
:Desktop.ini
For /F "Tokens=*" %%a in ('dir /B /S /A H "%appdata%\Microsoft\Windows\Start Menu\Programs\*desktop.ini"') do (del /q /F /A H "%%a")
For /F "Tokens=*" %%a in ('dir /B /S /A H "%ProgramData%\Microsoft\Windows\Start Menu\Programs\*desktop.ini"') do (del /q /F /A H "%%a")
 
 
 
:Accesos directos rotos
For /F "Tokens=*" %%a in ('dir /B /S "%appdata%\Microsoft\Windows\Start Menu\Programs\*.lnk"') do (
Set archivo="%%a"
call :comprobar)
 
For /F "Tokens=*" %%a in ('dir /B /S "%ProgramData%\Microsoft\Windows\Start Menu\Programs\*.lnk"') do (
Set archivo="%%a"
call :comprobar)
 
 
 
:Carpetas vacias
For /F "Tokens=*" %%a in ('dir /B /S /A:D "%appdata%\Microsoft\Windows\Start Menu\Programs\"') do (
set carpeta=%%a
call :Comprobar carpeta)
 
For /F "Tokens=*" %%a in ('dir /B /S /A:D "%ProgramData%\Microsoft\Windows\Start Menu\Programs\"') do (
set carpeta=%%a
call :Comprobar carpeta)
 
 
setlocal disabledelayedexpansion
 
 
 
goto :next37
 
 
 
:Comprobar
Comprobar_accesos_directos_rotos.vbs !archivo!
 
If %errorlevel% EQU 0 (
goto:eof
) ELSE (
Del /Q /F !archivo!
goto:eof
)
 
 
:Comprobar carpeta
"Comprobar_Carpetas_vacias.vbs" "!carpeta!"
 
If %errorlevel% EQU 0 (
goto:eof
) ELSE (
rd /q "!carpeta!\"
goto:eof
)




Comprobar_accesos_directos_rotos.vbs

Código
set objshell = createobject("wscript.shell")
set objlink = objshell.createshortcut(wscript.arguments(0))
set objfso = createobject("scripting.filesystemobject")
if objfso.fileexists(objlink.targetpath) then
wscript.quit(0)
else
wscript.quit(1)
end if
En línea

pa que
TheTroyanDark

Desconectado Desconectado

Mensajes: 141


Echo "Aprendiendo Batch."


Ver Perfil
Re: Recorrer directorios y generar log (BATCH)
« Respuesta #8 en: 30 Junio 2011, 01:39 »

Si es cierto muchasimas gracias por todo pitoloko manos a la obra... voy a terminar mi pequeña herramienta despues publico como me fue.  ;-)
En línea

"Pensando en Batch" XD
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
REcorrer ARreglos???
Programación General
Mr.Zeros0 2 713 Último mensaje 10 Mayo 2005, 01:04
por Slasher-K
[Batch] Cambiar nombre a directorios..
Scripting
Kobra5 5 2,811 Último mensaje 10 Febrero 2009, 03:58
por Kobra5
[Batch] Leer lineas de archivo y generar opciones
Scripting
Shinseiki86 7 2,073 Último mensaje 2 Abril 2009, 14:27
por Shinseiki86
como generar los numeros primos en programacion batch
Dudas Generales
rira85 1 1,674 Último mensaje 27 Noviembre 2009, 00:08
por Nu|kEr32
[Batch] Recorrer directorio
Scripting
acoevil 3 527 Último mensaje 29 Enero 2012, 19:43
por Leo Gutiérrez.
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines