Pregunta

Quiero saber cuánto espacio de disco está siendo utilizado por los archivos zip (o cualquier otra extensión) en un árbol de directorio en particular. ¿Es esto posible en la línea de comandos (en un programa por lotes)?

Puedo hacer una lista de ellos, es decir: dir / s * .zip o el uso de "forfiles": forfiles / p D: \ WINCAP / s / m * .zip / c "cmd / c eco @fsize"

Lo necesito en un programa por lotes, porque quiero ejecutarlo en más de 100 servidores (W2K3). Estoy acostumbrado a UNIX / Linux, y dos me está dando un dolor de cabeza;)

Las ideas?

Gracias! Ron

¿Fue útil?

Solución

Esta es una versión modificada de la que se encuentra: http: // en.kioskea.net/forum/affich-42442-dos-command-batch-file-to-find-a-folder-size

@echo off
setLocal EnableDelayedExpansion
set /a value=0
set /a sum=0 
FOR /R %1 %%I IN (%2) DO (
set /a value=%%~zI/1024/1024
set /a sum=!sum!+!value!
)
@echo Size is: !sum!  MB

Con el fin de evitar desbordamientos que convierte los valores de MB de inmediato por lo que redondear y ello bajo-informe del total, pero espero que esto te pone en el camino correcto, al menos. Guardarlo como dirsize.bat y llamarlo con el directorio que el primer parámetro y el patrón que corresponda como el segundo:

dirsize c:\ *.zip

Otros consejos

Puede intentar a de comandos de comandos, tal vez puede ayudar a administrar de forma remota.
Ejemplo: en DOS escritura > at \\localhost dir /s *.zip (localhost puede ser 192.bla.bla.bla, lo que quiere llamar a distancia)


ayuda adicional

The AT command schedules commands and programs to run on a computer at
a specified time and date. The Schedule service must be running to use
the AT command.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.

Si se puede descargar productos alimenticios a su máquina, puede seguir utilizando las herramientas de Unix, como du.

du *zip

herramientas GNU .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top