Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell test-path gibt nicht Wert wieder

Frage Microsoft

Mitglied: darkangel2k3

darkangel2k3 (Level 1) - Jetzt verbinden

20.03.2013, aktualisiert 14:51 Uhr, 2117 Aufrufe, 2 Kommentare

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:

01.
Get-ChildItem -Path C:\temp\*.log -Recurse | Where-Object {$_.LastWriteTime -ge (get-date).adddays(-1)} 
02.
test-path -Path C:\temp\*.log | Where-Object {$_.LastWriteTime -ge (get-date).adddays(-1)}
01.
Mode                LastWriteTime     Length Name                                                                                                                         
02.
----                -------------     ------ ----                                                                                                                         
03.
-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

01.
test-path -Path C:\temp\*.log | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-1)}
01.
PS C:\> test-path -Path C:\temp\*.log | Where-Object {$_.LastWriteTime -lt (get-date).adddays(-1)} 
02.
 
03.
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
Mitglied: darkangel2k3
20.03.2013, aktualisiert um 15:37 Uhr
Hab es zwischenzeitlich so gelöst:

01.
$Files = @(Get-ChildItem -Path C:\temp\*.log -Recurse | Where-Object {$_.LastWriteTime -ge (get-date).adddays(-1)}) 
02.
if ($Files.length -eq 0) { 
03.
  write-host "NO FILES"  
04.
  } else { 
05.
  write-host " OK" 
06.
}
Aber das ist natürlich nur ein workaround.
Bitte warten ..
Mitglied: 5t8d1e
27.03.2013 um 20:29 Uhr
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
01.
(test-path  C:\temp\*.log ).get-type()
und hier was du mit den Objekt alles machen kannst
01.
test-path  C:\temp\*.log | get-member
dein Skript kannst du wie folgt in einen Einzeiler bringen

01.
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
Bitte warten ..
Ähnliche Inhalte
Exchange Server
gelöst Exchange 2013 PostfachLimit über Powershell gibt immer Servereinstellung an (2)

Frage von YotYot zum Thema Exchange Server ...

Microsoft
Drucker Über Powershell installieren (5)

Frage von Asker06 zum Thema Microsoft ...

Batch & Shell
gelöst Bash Umgebungsvariable PATH Splitten (1)

Frage von Marabunta zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (20)

Frage von Oldschool zum Thema Router & Routing ...

Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (14)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (9)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...