Verwenden von wmic zum Abrufen von Informationen zum Festplattenspeicher

Ich versuche, Informationen über die physischen Laufwerke in einem Computer mit wmic abzurufen, um Folgendes zu erhalten:

Drive C:
500 GB Total
100 GB Free
20% Free

Drive D:
500 GB Total
100 GB Free
20% Free

Mein Code ist bisher:

for /f "usebackq tokens=*" %%a in (`wmic logicaldisk where "drivetype=3" get caption`) do (
echo "Drive=%%a"
for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where DeviceID='%%a'"       
get FreeSpace /format:value`) do set FreeSpace=%%x
for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='%%a'" get Size /format:value`) do set Size=%%x
echo FreeMB=%FreeSpace%
echo SizeMB=%Size%
set /a Percentage=100 * %FreeSpace% / %Size%
echo %%a is %Percentage% %% free
)

Und meine Ausgabe ist:

"Drive=Caption
No Instance(s) Available.
No Instance(s) Available.
FreeMB=9193357312
SizeMB=80024170496
Invalid number.  Numbers are limited to 32-bits of precision.
 is  % free
"Drive=C:
No Instance(s) Available.
No Instance(s) Available.
FreeMB=9193357312
SizeMB=80024170496
Invalid number.  Numbers are limited to 32-bits of precision.
is  % free
"Drive=E:
No Instance(s) Available.
No Instance(s) Available.
FreeMB=9193357312
SizeMB=80024170496
Invalid number.  Numbers are limited to 32-bits of precision.
 is  % free
"Drive=
No Instance(s) Available.
No Instance(s) Available.
FreeMB=9193357312
SizeMB=80024170496
Invalid number.  Numbers are limited to 32-bits of precision.
 is  % free

Ich komme zu vielen Zeilen, die nicht einmal ein Laufwerk haben, und kann den Wert nicht formatieren, um den Prozentsatz zu berechnen, oder die Werte in einem normalen Format anzeigen

Antworten auf die Frage(3)

Ihre Antwort auf die Frage