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, 2085 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Powershell - In Textdatei suchen und ersetzen (3)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...