2010-11-09 21 views
2

Avec ces lignes de code:utilisant get-enfants à la liste des fichiers avec LastWriteTime

get-childitem -Path d:\scripts –recurse | 
where-object {$_.lastwritetime -gt (get-date).addDays(-1)} | 
Foreach-Object { $_.FullName } 

-je obtenir une liste de tout sous le répertoire d: \ scripts qui est inférieur à 1 jour en horodatage. Sortie:

D:\scripts\Data_Files 
D:\scripts\Power_Shell 
D:\scripts\Data_Files\BackUp_Test.txt 
D:\scripts\Power_Shell\archive_test_1dayInterval.ps1 
D:\scripts\Power_Shell\stop_outlook.ps1 
D:\scripts\Power_Shell\test.ps1 
D:\scripts\WinZip\test.wjf 

L'offre, les dossiers de fichiers (Data_Files & Power_Shell) ont une dernière écriture avec la date param. Je veux juste les fichiers comme dans les lignes 3 - 7 en sortie.

Suggestions?

Répondre

8
get-childitem -Path d:\scripts –recurse | 
    where-object {$_.lastwritetime -gt (get-date).addDays(-1)} | 
    where-object {-not $_.PSIsContainer} | 
    Foreach-Object { $_.FullName } 

$_.PSIsContainer est vrai pour les dossiers, ce qui permet l'objet supplémentaire où les filtres out.

+3

where-object {$ _ LastWriteTime -gt (get-date) .addDays (-1) -et -non $. _.PSIsContainer} ## Ne doublez pas où-objet si vous n'avez pas besoin de :) – Jaykul

+0

grand merci. – chris

+0

@ jaykul point juste nuff dit – tenpn

0
gci d:\scripts –recurse | 
    ? { $_.Attributes -band [System.IO.FileAttributes]::Archive } | 
    ? { $_.LastWriteTime -gt (Get-Date).AddDays(-1) } | 
    foreach { $_.FullName } 

ou

gci d:\scripts –recurse | 
    ? { -not ($_.Attributes -band [System.IO.FileAttributes]::Directory) } | 
    ? { $_.LastWriteTime -gt (Get-Date).AddDays(-1) } | 
    foreach { $_.FullName } 
1

Essayez ceci:

dir d:\scripts –recurse | where {!$_.PSIsContainer -AND $_.lastwritetime -gt (get-date).addDays(-1)} | foreach { $_.FullName } 
+0

'$ _' pas' $ ', n'est-ce pas? – tenpn

+0

hehe, le démarquage frappe à nouveau! Vous devez marquer votre code pour qu'il ne soit pas interprété comme un balisage :) – Jaykul

+0

yup, $ _ c'est. Merci Joel, le code est maintenant corrigé. –