Powershell - Wenn DATEI (Platzhalter) vorhanden und größer als 0 KB ist

Powershell - Wenn DATEI (Platzhalter) vorhanden und größer als 0 KB ist

Mit dem Folgenden kann ich erfolgreich prüfen, ob eine Datei vorhanden ist und größer als 0 KB ist:

$getFILE = 'C:\DIR\FILE1.txt'

IF (test-path $getFILE){
    IF ((get-item $getFILE).length -gt 0) {
        "OK";return 0
    }
    ELSE {
        "0 bytes";return 2
    }
}
ELSE {
    "doesn't exist";return 1
}

Ich kann wie folgt prüfen, ob eine Platzhalterdatei vorhanden ist:

$getFILE = 'C:\DIR\FILE*.*'

IF (test-path $getFILE){
    "OK";return 0
}
else {
    "doesn't exist";return 1
}

Ich bekomme die beiden Konzepte jedoch nicht zusammen. Im Folgenden ist, wenn die Wildcard-Datei existiert, immer 0 zurückzugeben:

$getFILE = 'C:\DIR\FILE*.*'

IF (test-path $getFILE){
    IF ((get-item $getFILE).length -gt 0) {
        "OK";return 0
    }
    else {
        "0 bytes";return 2
    }
}
else {
    "doesn't exist";return 1
}

Antwort1

Ok, ich habe noch ein bisschen herumgespielt und mir ist etwas eingefallen, das funktioniert:

$vDIR = 'C:\DIR'
$vFILE = 'FILE*.*'

$proc = @(Get-ChildItem $vDIR -Recurse -Include $vFile | Where {$_.length -gt 0})
If ($proc.count -gt 0) {
   ForEach ($item in $proc) {
      Do a bunch of stuff
   }
Else {
   Do this other thing
}

Wenn jemand eine sauberere Lösung hat, würde ich sie trotzdem gerne sehen.

EDIT: Habe meine Lösung ziemlich verändert. Nochmals, wenn es einen besseren Weg gibt, dies zu tun, bin ich sehr offen für Vorschläge, die mir helfen, mein allgemeines Wissen/meine Fähigkeiten zu verbessern.

verwandte Informationen