2013-11-26 18 views
6

Hallo mein erstes gehen mit mit einem Batch-Skript gesetzt, erhalte ich die Größe der Festplatte wie folgt:Batch-Datei wmi Ausgabe als eine Variable

wmic diskdrive get size 

der gut arbeitet, aber ich möchte speichern Dieser Wert wird später für eine Variable verwendet, z. B. ECHO zum Anzeigen des Werts.

Ich bin nicht sicher, wie ich die Ausgabe des obigen Befehls auf eine Variable festlegen. Ich ging mit:

SET hddbytes=wmic diskdrive get size 

Aber das setzt nur die Variable auf die obige Textzeichenfolge und nicht die Ausgabe.

+0

Ich denke, dass alle diese Lösungen geben nur ein Laufwerk in der Liste - meins hat ein paar Laufwerke aufgelistet. BTW, das ist 'Batch' Skript und nicht' BASH' – foxidrive

+0

@Foxidid ja natürlich :) Ich bin meist trotzig nicht eine Windows-Person nur BASH auf dem Kopf, danke für die darauf hinweisenden – twigg

Antwort

9

Für Verwendung in Batch-Datei. Von Befehlszeile ersetzen %% durch%

for /f "tokens=*" %%f in ('wmic diskdrive get size /value ^| find "="') do set "%%f" 
echo %size% 

Oder, wenn Sie Sie Variable

for /f "tokens=2 delims==" %%f in ('wmic diskdrive get size /value ^| find "="') do set "myVar=%%f" 
echo %myVar% 
+0

+ 1.Wäre lieber Textvaluelist Format und so konnte 'set' direkt verwendet werden. – npocmaka

+0

@npocmaka: ich verstehe nicht. Was habe ich dann gemacht? –

+0

können Sie "delims =" und "set %% f" direkt verwenden, aber das ist nur die Art, wie ich Werte bei der Verwendung von wmic setzen möchte – npocmaka

0
for /f "delims=" %%w in ('wmic diskdrive get size /format:Textvaluelist.xsl') do for /f "usebackq delims=" %%a in ('%%w') do set %%a 
echo %size% 
2

bevorzugt verwenden möchten möchten Sie:

for /f %%a in ('wmic diskdrive get size^|findstr [0-9]') do echo %%a 
Verwandte Themen