Я пытаюсь создать командный файл для извлечения общего размера и свободного места на диске 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, а также любые сторонние утилиты).