Powershell test-path gibt nicht Wert wieder
Hallo zusammen,
ich habe ein kleine Problem mit test-path und der Windows Powershell und hoffe, dass die Gemeinde mich kurz erleuchten kann .
Wenn ich folgendes ausführe:
Hier kommt aber von test-path kein true oder false zurück (obwohl true kommen müsste)
Mache ich jetzt (unsinngerweise) aus -ge -lt oder -le
kommt ein true oder false zurück????????
Das kann doch aber nicht sein, das ge, lt, le usw. alles Operatoren vom Befehl Where-Object sind.
Hat jemand vielleicht eine Idee??? Oder das Phänomen auch schon mal erlebt.
Grüße
ich habe ein kleine Problem mit test-path und der Windows Powershell und hoffe, dass die Gemeinde mich kurz erleuchten kann .
Wenn ich folgendes ausführe:
Get-ChildItem -Path C:\temp\*.log -Recurse | Where-Object {$_.LastWriteTime -ge (get-date).adddays(-1)}
test-path -Path C:\temp\*.log | Where-Object {$_.LastWriteTime -ge (get-date).adddays(-1)}
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 20.03.2013 08:37 68004 SUService.log
Hier kommt aber von test-path kein true oder false zurück (obwohl true kommen müsste)
Mache ich jetzt (unsinngerweise) aus -ge -lt oder -le
test-path -Path C:\temp\*.log | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-1)}
PS C:\> test-path -Path C:\temp\*.log | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-1)}
True
kommt ein true oder false zurück????????
Das kann doch aber nicht sein, das ge, lt, le usw. alles Operatoren vom Befehl Where-Object sind.
Hat jemand vielleicht eine Idee??? Oder das Phänomen auch schon mal erlebt.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 203654
Url: https://administrator.de/contentid/203654
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo darkangel,
test-path gibt dir nur ein Objekt vom Typ BOOLEAN zurück. Da kannst noch so sehr pipen das Ding kennt nur $true oder $false!
hier der Beweis
und hier was du mit den Objekt alles machen kannst
dein Skript kannst du wie folgt in einen Einzeiler bringen
Schön sieht es nicht aus aber läuft.
Wenn du sowas regelmäßig machst solltest du über eine selbstgebaute Funktion nachdenken.
Der Torsten wars
Hail to the PoSh
test-path gibt dir nur ein Objekt vom Typ BOOLEAN zurück. Da kannst noch so sehr pipen das Ding kennt nur $true oder $false!
hier der Beweis
(test-path C:\temp\*.log ).get-type()
und hier was du mit den Objekt alles machen kannst
test-path C:\temp\*.log | get-member
dein Skript kannst du wie folgt in einen Einzeiler bringen
write "Die Anzahl der Logdateien ist: $((get-childitem -path C:\temp -filter "*.log" -Recurse | where {$_.LastwriteTime -gt (get-date).adddays(-1)}).count)"
Schön sieht es nicht aus aber läuft.
Wenn du sowas regelmäßig machst solltest du über eine selbstgebaute Funktion nachdenken.
Der Torsten wars
Hail to the PoSh