Batch Ordnergröße abfragen (mit Powershell command über Batch)

Tom4321

Newbie
Registriert
Mai 2018
Beiträge
2
Hallo,

ich bin neu hier und hoffe ihr könnt mir weiterhelfen! Hier ein Auschnitt meiner batch-Datei. Ich verstehe leider nicht wieso dieser Abschnitt nicht funktioniert. Dieser Codeabschnitt soll die Ordnergröße abklären und falls es größer als 190GB ist, soll es den Wert 5 an das Batch Script zurückgeben und anschließend die Nummer 5 ausgeben.

Code:
@echo off

powershell -ExecutionPolicy Unrestricted -c "if("{0:N0}" -f ((Get-ChildItem "C:\users\test\desktop\test" -Recurse | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum / 1MB) -gt 190000 ){exit 5}"

echo %ERRORLEVEL% 
pause

Wenn ich den Befehl jetzt aber selbst in powershell eingebe und statt exit einfach eine Zahl ausgebe funktioniert es wie es soll.

Code:
if("{0:N0}" -f ((Get-ChildItem "C:\users\test\desktop\test" -Recurse | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum / 1MB) -gt 190000 ){5}

Ich muss das script leider in batch schreiben (Anforderung an mich).
Gibt anscheinend ein Problem bei der Weitergabe von Powershell an Batch ?

Danke im Voraus!
 
Setz das ganze mal in einzelne Hochkomme statt doppelte, dann sollte er es richtig in die Powershell kopieren
 
Wartbarer wird das Ganze, wenn Du die PS-Befehlszeile in eine .ps1-Datei steckst und diese dann per PowerShell.EXE ... -File <datei.ps1> aufrufst.

Dies unter der Annahme, daß der "Empfänger" des Scripts deswegen nicht gleich einen Herzkasper kriegt. :)

Außerdem versteht PowerShell Datentypen. Die Chancen sind auch wahnsinnig gut, daß Du mit Stringkonvertierungen und dann numerischen Vergleichen irgendwelchen Blödsinn rausbekommen wirst.

Und wenn die Absicht nicht grad war, das Ganze bewußt zu verschleiern, würd ich auch dringend empfehlen, die Befehlszeile aufzurollen und klarer darzustellen. Sonst schaust Du da später drauf -- vielleicht just in diesem Moment ---- und fragst Dich ganz besorgt, was da überhaupt passiert.

Nur so als gut gemeinter Hinweis. Batch würd ich auch nicht dafür nehmen und wenn das die Anforderung war, ja, dann muß man sich bissel was einfallen lassen... aber wenn nicht aktiv was dagegen spricht, dann ist die zweite Datei mit dem PS-Code da drin die bessere Idee.

Nur meine zwei Pence.
 
Zurück
Oben