Estoy tratando de crear un archivo por lotes para extraer el tamaño total y el espacio libre de la unidad C: \ de servidores (script ejecutado localmente). También necesito que la salida sea fácil de leer, por lo que los bytes no van a funcionar, así que estoy de acuerdo con tener una línea de comando que cree un archivo temporal .vbs.
Parece que lo siguiente podría funcionar, pero el formato / matemática no es correcto.
setlocal
for /f "tokens=6" %a in ('fsutil volume diskfree C: ^| find "of bytes"') do set diskspace=%a
echo wsh.echo FormatNumber(cdbl(%diskspace%)/1024, 0) > %temp%.\tmp.vbs
for /f %a in ('cscript //nologo %temp%.\tmp.vbs') do set diskspace=%a
del %temp%.\tmp.vbs
echo For example %diskspace%
Los comandos anteriores también solo muestran espacio libre ... También me gustaría el tamaño total ... Me pregunto si el siguiente comando podría ser mejor para extraer la información:
WMIC LOGICALDISK GET Name,Size,FreeSpace | find /i "C:"
Tenga en cuenta también que quiero que esto se pueda copiar / pegar directamente en un símbolo del sistema (no un archivo por lotes - requisitos forzados). Ya he eliminado los "%%" del código anterior.
Nota: debe ejecutarse de forma nativa en Server 2003+ (por lo que Powershell está desactivado, así como cualquier utilidad de terceros).