Próbuję utworzyć plik wsadowy, aby pobrać całkowity rozmiar i wolne miejsce na dysku C: \ serwerów (lokalnie uruchamiany skrypt). Potrzebuję również, aby dane wyjściowe były łatwe do odczytania, więc bajty nie będą działać, więc nie mam nic przeciwko linii poleceń, która tworzy plik temp .vbs.
Wygląda na to, że może to działać, ale formatowanie / matematyka jest nieprawidłowe.
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%
Powyższe polecenia pokazują również tylko wolne miejsce ... Chciałbym też całkowity rozmiar ... Zastanawiam się, czy poniższe polecenie może być lepsze do pobierania informacji:
WMIC LOGICALDISK GET Name,Size,FreeSpace | find /i "C:"
Zauważ też, że chcę, aby można było to skopiować / wkleić bezpośrednio w wierszu polecenia (nie wymuszone przez plik wsadowy). Usunąłem już „%%” z powyższego kodu.
Uwaga: Musi działać natywnie na serwerze 2003+ (więc program PowerShell jest niedostępny, podobnie jak wszelkie narzędzia innych firm).