Überprüfen der Dateigröße gt 0 in Powershell
Habe ich die Suche nach Hilfe in Bezug auf mein Thema aber nicht finden, etwas in der Nähe, was ich brauche, dann ist hier meine Frage:
Muss ich überprüfen Sie die Größe einer Datei in einem bestimmten Ordner, wenn seine größer als 0 Byte ist, ist das OK um den Prozess fortzusetzen, sonst Abbruch schriftlich eine output-Nachricht und Versand der fail code = 1.
Ich habe versucht, das unten, aber ohne Erfolg auf das schreiben der Nachricht in die log:
$FileExists1 = "D:\TEST\FILE\test.txt"
IF (Test-Path $FileExists1) {
If ((Get-Item $FileExists1).length -gt 0kb) {
Write-Output [$(Get-Date)]:" FILE IS OK FOR PROCESSING! - RC = $rc"
}
Else {
$rc = 1
Write-Output [$(Get-Date)]:" FILE HAS 0 BYTES AT D:\TEST\FILE\"
Write-Output [$(Get-Date)]:" VALIDATION FINISHED - RC = $rc"
Exit $rc
}
}
Kennt einer von Euch weiß, was ich tun könnte?
Schätzen Ihre Hilfe!
- Sie erhalten bessere Antworten auf Ihre Frage, wenn Sie markieren Sie Sie mit der Programmiersprache, die Sie zu Fragen, statt einfach nur "Datei" und "Größe"
- Danke Ari, nur aktualisiert.
- Was bedeutet "aber ohne Erfolg auf das schreiben der Nachricht in die log:" bedeuten? Was melden Sie?
- wenn ich sage, log ich meine die Ausgabe von Write-Output, Im dem das Skript von Autosys, wo habe ich einen output-Ordner zum speichern meiner log, dann löst das mein script und schreibt Nachrichten gibt.
- Was du gepostet hast funktioniert gut, aber Sie haben nicht gemeinsam, wie Ihr Euch einloggen... ich vermute dein problem ist nicht der code, den Sie angegeben haben.
- Während Sie "log-Ausgabe" funktioniert, würde ich vorschlagen, Sie nennen es dann besser:
Write-Output "[$(Get-Date)]:' FILE HAS 0 BYTES AT D:\TEST\FILE\'"
. Ihr Problem ist nur die Protokollierung? Dieser code funktioniert außerhalb Autosys?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert der code auch absolut in Ordnung. Allerdings stellen Sie sicher, stellen Sie einen Anfangswert zu Ihrem "$rc".
Allerdings, wenn Sie führen Sie den code erneut in dem gleichen Umfang, den Wert der variable $rc 1. So stellen Sie sicher, Sie re-initialisieren Sie den Wert auf 0 oder etwas anderes, so könnte es nicht zu einem falschen Ergebnis.
Ist das Problem mit der Ausgabe der log? Write-output wird das schreiben in die Konsole-host. Verwenden Sie die out-Datei oder tee-Objekt statt
"[$(Get-Date)]:' DATEI HAT 0 BYTE AN D:\TEST\FILE\'" | Out-file D:\example.log
Auch die variable $rc ist undefiniert, wenn die Datei größer ist als 0.