Я пытаюсь создать командный файл, чтобы получить общий размер и свободное место на диске C:\ серверов (локально запускаемый скрипт). Мне также нужно, чтобы выходные данные были легко читаемыми, чтобы байты не работали, поэтому я согласен с командной строкой, которая создает временный файл .vbs.
Кажется, что следующее может работать, но форматирование / математика неверны.
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%
Вышеприведенные команды также показывают только свободное место ... Я бы тоже хотел общий размер ... Хотите знать, если следующая команда может быть лучше для извлечения информации:
WMIC LOGICALDISK GET Name,Size,FreeSpace | find /i "C:"
Также обратите внимание, что я хочу, чтобы это можно было копировать / вставлять непосредственно в командную строку (не командный файл - принудительные требования). Я уже удалил "%%" из кода выше.
Примечание. Должен запускаться на сервере Server 2003+ (так что вышел Powershell, а также любые сторонние утилиты).