Borrar Archivos y mostrar peso de archivos borrado

Iniciado por Dany3j, 5 Julio 2011, 15:19 PM

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

Dany3j

Hola amigos tengo una duda.. Alguien me da una mano para realizar lo siguiente.

Estoy tratando de borrar unos archivos y carpetas  y que al final muestre un mensaje con el peso de todo lo borrado.

por ejemplo

@echo borrar archivos
Pause

Rmdir C:/test
Del C:/test2/*.*
Del C:/test3/*.exe

msg *  xxxx MB borrados
"Pensando en Batch" XD

WaAYa HaCK

Código (dos) [Seleccionar]
@echo off
if not exist %1 echo Especifica un archivo para borrar! & exit
echo El peso del archivo borrado es: %~z1 KB
del %1
pause>nul


Este simple batch funciona pasándole la ruta al archivo que desees borrar como parámetro y obteniendo el tamaño del archivo. Mira, en este mismo foro, el tutorial de Programación BATCH Avanzada, de Sirdarkckat.

Saludos!
La cacatúa yoyó es nueva en el zoo!

SuperDraco

#2
En megabytes no creo que puedas.. a menos que hagas la conversión del numero final del tamaño total en bytes... además, lo que ha dicho waAya no funciona con las carpetas, %~z engaña mucho y se equivoca si lo usas sobre carpetas, pero bueno, si no te importa mucho, usalo xD

Para eso del tamaño real de las carpetas te recomiendo que uses vbscript... y para el tamaño de los archivos tambien... en el tutorial con chincheta de novlucker está todo lo que necesitas saber, es muy básico esto y debes cambiarlo para uarlo sobre archivos:

Código (vb) [Seleccionar]

Option Explicit
Dim objFileSystem, objTheFolder
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set objTheFolder = objFileSystem.GetFolder(wscript.arguments(0))

wscript.echo objTheFolder.size

end if


bueno, toma el bat:

Código (dos) [Seleccionar]
@echo off
For /f %%a in ('type lista.txt') do (

echo "%%a" pesa %%~za bytes
Set /a suma+=%%~za
Del /Q /F "%%a"
)

Echo %suma% bytes borrados
pause >nul


PD: en Lista.txt tendrias la lista de esta manera:

C:\test2\archivo1.exe
C:\test3\archivo2.exe


etc...
No he vuelto, solo estoy de paso.

leogtz

También comentar que en Windows se usa el caracter '\' para las rutas, no /, que es propio de otros SO's.
Código (perl) [Seleccionar]

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

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

SuperDraco

Cita de: Leo Gutiérrez. en  5 Julio 2011, 19:06 PM
También comentar que en Windows se usa el caracter '\' para las rutas, no /, que es propio de otros SO's.

*****, ha sido un error al escribir xD gracias. correjido.
No he vuelto, solo estoy de paso.

WaAYa HaCK

Joder, quiero aprender a usar el for de una vez por todas  :P
La cacatúa yoyó es nueva en el zoo!

leogtz

Chicos, la indentación la están dejando totalmente de lado, recuerden que es un buen hábito.
Código (perl) [Seleccionar]

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

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

SuperDraco

Tienes razón, pero porque en el foro no puedo insertar un TAB  xD

saludosss
No he vuelto, solo estoy de paso.

leogtz

Entiendo, tal vez haya un plugin para firefox...
Código (perl) [Seleccionar]

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

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

Dany3j

CitarRmdir C:/test
Del C:/test2/*.*
Del C:/test3/*.exe

:laugh: no presione shift en mi teclado.. jajajaj :D
"Pensando en Batch" XD