¿Hay alguna forma de obtener la cantidad de espacio libre en disco de un disco o una carpeta en un CMD sin tener que instalar algunas aplicaciones de terceros?
Tengo un CMD que copia un archivo grande en un directorio determinado y, por supuesto, podría usar el retorno de nivel de error del comando de copia, pero luego tengo que esperar el tiempo que se tarda en copiar el archivo (por ejemplo, a ese entonces el el disco está lleno y la operación de copia falla).
Me gustaría saber antes de comenzar la copia si hay alguna idea. Probé la utilidad DU.EXE de Sysinternals, pero solo muestra el espacio ocupado.
Respuestas:
Si ejecuta "
dir c:\
", la última línea le dará espacio libre en el disco.Editar: Mejor solución: "
fsutil volume diskfree c:
"fuente
dir ..*
(odir c:\thing\..*
) mostrará una lista muy corta, ya sea que haya o no cero o muchos archivos en el directorio.Una posible solución:
una " solución más avanzada ", para Windows Xp y más allá:
La herramienta de línea de comandos de Instrumental de administración de Windows (WMIC) (Wmic.exe) puede recopilar una gran cantidad de información sobre Windows Server 2003, así como Windows XP o Vista. La herramienta accede al hardware subyacente mediante Windows Management Instrumentation (WMI). No para Windows 2000.
Como señaló Alexander Stohr en los comentarios :
dir
' seguirá haciendo el trabajo),dir
' depende de la configuración regional.fuente
@FOR /F "tokens=2 delims==" %%S IN ('wmic /NODE:"%COMPUTERNAME%" LogicalDisk Where ^(DriveType^="3" and DeviceID^="%some_folder:~0,2%"^) Get FreeSpace /VALUE') DO @SET freespace=%%S
fsutil
necesitaba privilegios de administrador incluso para ejecutarse, independientemente de lo que esté haciendo con él.Con este comando puede encontrar todas las particiones, tamaño y espacio libre:
wmic logicaldisk get size, freespace, caption
fuente
Puede evitar las comas usando / -C en el comando DIR.
Si desea comparar el espacio disponible con el espacio necesario, puede hacer algo como lo siguiente. Especifiqué el número con un separador de miles y luego los eliminé. Es difícil captar el número sin comas. El SET / A es bueno, pero deja de funcionar con números grandes.
fuente
La siguiente secuencia de comandos le dará bytes libres en la unidad:
Tenga en cuenta que esto depende de la salida de su
dir
comando, que necesita la última línea que contiene el espacio libre del formato24 Dir(s) 34,071,691,264 bytes free
. Específicamente:for
bucle para detectar la línea explícitamente en lugar de confiar en la configuraciónbytesfree
de cada línea).tokens=
bit para obtener una palabra diferente).,
carácter (o puede cambiar la sustitución de coma a otra cosa).No contamina el espacio de nombres de su entorno, configurando solo la
bytesfree
variable al salir. Si sudir
salida es diferente (por ejemplo, una configuración regional o de idioma diferente), deberá ajustar el script.fuente
df.exe
Muestra todos sus discos; Capacidad total, usada y libre. Puede modificar la salida mediante varias opciones de la línea de comandos.
Puede obtenerlo en http://www.paulsadowski.com/WSH/cmdprogs.htm , http://unxutils.sourceforge.net/ o en otro lugar. Es un unix-util estándar como du.
df -h
mostrará todo el espacio en disco usado y disponible de su unidad. Por ejemplo:Cygwin está disponible de forma gratuita en: https://www.cygwin.com/ Agrega muchas herramientas poderosas al símbolo del sistema. Para obtener solo el espacio disponible en la unidad M (como se asigna en Windows a una unidad compartida), se puede ingresar:
fuente
Usando la excelente solución de paxdiablo , escribí un script por lotes un poco más sofisticado, que usa la letra de la unidad como argumento entrante y verifica si la unidad existe de una manera complicada (pero no hermosa):
nota1: puede escribir una letra simple (por ejemplo, x) o puede usar x: o x: \ formato como letra de unidad en el argumento
note2: el script mostrará stderr de% chkfile% solo si el tamaño es mayor que 0
note3: guardé este script como freedisk.cmd (ver uso)
fuente
Hago una variación para generar esto desde el script:
volume C: - 49 GB total space / 29512314880 byte(s) free
Utilizo diskpart para obtener esta información.
fuente
¿Es cscript una aplicación de terceros? Sugiero probar Microsoft Scripting , donde puede usar un lenguaje de programación (JScript, VBS) para verificar cosas como Listar espacio disponible en disco .
La infraestructura de secuencias de comandos está presente en todas las versiones actuales de Windows (incluida la 2008).
fuente
cscript
es Microsoft Scripting. Es la versión de consola del intérprete de secuencias de comandos de Windows (wscript
es la versión de GUI).