metzger000
Goto Top

Umrechnung von Byte auf Gigabyte

Umrechnung einer Datenträgergröße auf GB via Batch

Hallo

ich habe hier mehrere Beiträge gelesen über die Umwandlung der Größen innerhalb einer Batchdatei. Ich habe nun auch fleißig rumgebastelt und komme imme auf die gleichen Fehler. Entweder zeigt er mir "Fehlender Operator" an, oder er gibt mir nur den Wert 0 aus. Außerderm rechnet er auch nicht die Zwischenschritte. Vielleicht könnt ihr mir helfen?

echo on
FOR /F "tokens=1,2 delims= " %%a in ('wmic /Node:Server.txt logicaldisk get Name^,size ^| findstr /c:C:') DO (  
	set byte=%%b
	set /a kilobyte=%byte%/1024
 	set /a megabyte=%kilobyte%/1024
 	set /a gigabyte=%megabyte%/1024
 	echo %%a %gigabyte%
	
) 

Content-Key: 182372

Url: https://administrator.de/contentid/182372

Printed on: May 27, 2024 at 07:05 o'clock

Member: Skyemugen
Skyemugen Mar 21, 2012 at 13:48:10 (UTC)
Goto Top
Aloha,

hm, wozu dient das Escapen des Kommas in dem Befehl?

greetz André
Member: Metzger000
Metzger000 Mar 21, 2012 at 13:51:52 (UTC)
Goto Top
Damit bekomme ich mehrere Werte ausgeben. Wenn ich das weglassen würde, würde er Name,size suchen und könnte es nicht auflösen.
Member: Skyemugen
Skyemugen Mar 21, 2012 at 14:04:30 (UTC)
Goto Top
Aloha,

hm, kannst du mal deinen Wert vom echo on posten, denn
Ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits.
will da nicht mitspielen.

greetz André
Member: Metzger000
Metzger000 Mar 21, 2012 at 14:30:08 (UTC)
Goto Top
Und da bedeutet? Wie kann ich das umgehen?
Member: bastla
bastla Mar 21, 2012 at 14:50:47 (UTC)
Goto Top
Hallo Metzger000!

Das bedeutet, dass Du in CMD nur mit Zahlen von -2147483648 bis 2147483647 rechnen kannst - als Workaround könntest Du ein temporäres VBScript einsetzen, etwa:
echo on & setlocal
set "C=%temp%\Convert2GiB.vbs"  
>%C% echo WScript.Echo FormatNumber(WScript.Arguments(0)/1024/1024/1024, 2)

FOR /F "tokens=1,2 delims= " %%a in ('wmic /Node:Server.txt logicaldisk get Name^,size ^| findstr /c:C:') DO (  
    for /f "delims=" %%g in ('cscript //nologo %C% %%b') do (  
        echo %%a %%g
    )
)
[OT] Hallo Skye!

Jetzt hätte ich Dich beinahe nicht erkannt ... face-wink
[/OT]

Grüße
bastla
Member: Metzger000
Metzger000 Mar 21, 2012 at 14:58:55 (UTC)
Goto Top
geht es nicht ohne VBS? Ich kann VBS nicht und irgendwie läuft das Script auch nicht richtig, wenn ich beim /Node meinen Client eintrage
Member: bastla
bastla Mar 21, 2012 at 15:06:29 (UTC)
Goto Top
Hallo Metzger000!
Ich kann VBS nicht
Musst Du auch nicht ...
irgendwie läuft das Script auch nicht richtig, wenn ich beim /Node meinen Client eintrage
Endlich mal eine aussagekräftige Fehlerbeschreibung ... face-wink

Wenn ich die Abfrage für meinen (XP-) Client durchführen will, lasse ich die "/Node"-Angabe einfach weg (und starte den Batch wegen "wmic" natürlich als Admin).
Als Alternative mit "Batch only" fiele mir eigentlich nur ein, die letzten 3 Stellen der Ausgabe zu ignorieren und das, was dann überbleibt, als KB zu betrachten ...

Grüße
bastla
Member: Hubert.N
Hubert.N Mar 21, 2012 at 16:57:45 (UTC)
Goto Top
Off Topic !!!

Und hier kommt dann auch noch der Klugsch... des Tages:

Du rechnest falsch, weil 1 Gigabyte 1.000.000.000 Bytes sind face-smile
Member: bastla
bastla Mar 21, 2012 at 21:24:08 (UTC)
Goto Top
@hubertn
Wie auch immer - mein VBS heißt "Convert2GiB.vbs" ... face-wink

Grüße
bastla