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, 2125 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
Batch & Shell
gelöst Powershell Wert der Property entfernen manipulieren (9)

Frage von Nintox zum Thema Batch & Shell ...

Exchange Server
gelöst Exchange 2013 PostfachLimit über Powershell gibt immer Servereinstellung an (2)

Frage von YotYot zum Thema Exchange Server ...

Windows Server
gelöst Powershell und Remote in der Registry rumwuseln (6)

Frage von H41mSh1C0R zum Thema Windows Server ...

Batch & Shell
gelöst HTML in Powershell (8)

Frage von michi-ffm zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
VPN Tunnel aufbauen (16)

Frage von Hajo2006 zum Thema LAN, WAN, Wireless ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (14)

Frage von marshall75000 zum Thema Router & Routing ...

Microsoft Office
Saubere HTML aus Word-Dokument (14)

Frage von peterpa zum Thema Microsoft Office ...

E-Mail
gelöst Probleme beim E-Mail Empfang (12)

Frage von TommyB83 zum Thema E-Mail ...