- Registriert
- Aug. 2011
- Beiträge
- 81
Darkman.X schrieb:Pwershell ist für Microsoft die Zukunft, die normale Eingabeaufforderung wird immer mehr versteckt. Und Powershell ist auch wesentlich mächtiger, basiert auf .NET.
Zu deiner Gesamtkapazität: Ob es einen einzelnen Befehl gibt, weiß ich nicht, ich bin in Powershell nicht drin. Aber die Idee, den belegten Speicher und freien Speicher zu addieren, ist gut:
((Get-PSDrive -Name Z).Used/1GB) + ((Get-PSDrive -Name Z).Free/1GB)
Funktioniert sogar
Funktioniert definitiv in powershell, aber auch in einem batch skript? Habe das mal wie folgt versucht und mit den Klammern rumprobiert, aber es scheint zumindest auf meine weise fehlerhaft zu sein, sodass keine csv erstellt wird oder es wird mir in der csv nur ein "+" ausgespuckt, wo der Gesamte Speicehr sein sollte:
-------------------------------------------------------------------------------------------------------------------REM Den gesamten Speicher über ein Powershell-Befehl aus freien und genutzten Speicher addieren
FOR /F %%i IN ('powershell (^((Get-PSDrive -Name %Laufwerk%^).Used/1GB) + ^((Get-PSDrive -Name %Laufwerk%^).Free/1GB))') DO SET Gesamter_Speicher_in_GiB=%%i
EDIT:
Habs jetzt alternativ mal in Batch berechnet, bekomme dann aber leider 449 GB statt den tatsächlichen 450 GB heraus:
Da kommt bestimmt 449,99 GB raus und ich muss irgendwie aufrunden, oder? Oder in batch geht das rechnen mit Kommazahlen garnicht, sodass dort nur auf 449 glatt gekommen werden kann?set /A Gesamter_Speicher_in_GiB=Freier_Speicher_in_GiB+Genutzter_Speicher_in_GiB
echo %Freier_Speicher_in_GiB% + %Genutzter_Speicher_in_GiB% = %Gesamter_Speicher_in_GiB%
Bei letzterem wäre die Addition mit Powershell dann doch besser...
-------------------------------------------------------------------------------------------------------------------
EDIT:
Habe es hinbekommen, habe wohl den obigen powershell befehl falsch eingebunden, habe nun mal geschaut wie das geht, und nun klappt es auf diese Weise:
REM Den gesamten Speicher über ein Powershell-Befehl aus freien und genutzten Speicher addieren
FOR /F %%i IN ('powershell -Executionpolicy Bypass -Command "((Get-PSDrive -Name I).Used/1GB) + ((Get-PSDrive -Name I).Free/1GB)"') DO SET Gesamter_Speicher_in_GiB=%%i
Bin gerne offen für Verbesserungsvorschläge und gerne auch, wie ich obiges beim Einbinden des powershellbefehls in batch korrigieren müsste.
Super vielen Dank, das Lösen der Problemstellung mit eurer Hilfe hat richtig Spaß gemacht und ich habe viel gelernt.
Zuletzt bearbeitet: