我的IF-ELSE語句有些問題,我的愚蠢的大腦無法弄清楚它到底是什麼!遞歸顯示沒有顯示正確的格式
如果我單獨運行下面的代碼它顯示在下面的格式,每個目錄和文件在那裏:
get-childitem E:\LogArchive -recurse | where-object {$_.lastwritetime -gt 60}
輸出格式:
Directory: E:\LogArchive\W3SVC100
Mode LastWriteTime Length Name
---- ------------- ------ ----
----- 29/03/2007 15:03 663 ex070329.log.gz
----- 30/03/2007 15:44 860 ex070330.log.gz
----- 03/04/2007 13:41 354 ex070403.log.gz
----- 05/04/2007 14:00 704 ex070405.log.gz
----- 10/04/2007 17:56 921 ex070410.log.gz
----- 11/04/2007 14:55 987 ex070411.log.gz
----- 12/04/2007 15:12 539 ex070412.log.gz
然而,這在運行時在代碼中顯示如下,沒有所有的文件夾結構和日期等:
W3SVC100
W3SVC102
W3SVC105
W3SVC106
W3SVC1108492480
W3SVC112
W3SVC116
W3SVC118
W3SVC1209046175
W3SVC123110214
W3SVC1262336480
W3SVC127
W3SVC134
W3SVC134239081
W3SVC137
W3SVC139
W3SVC145
W3SVC147
W3SVC1499983181
W3SVC15
我如何g et下面的腳本運行時的第一個結果 - 顯示所有修改日期,最後寫入時間等。如果在日期範圍內沒有找到文件,那麼我正在向用戶輸入消息,然後顯示一條消息 - 但是,如果確實找到任何文件,則顯示它們,如第一個輸出類型中所列出的那樣.......
實際上,我認爲故障是在這條線,但無法弄清楚如何修改這個:
if ($runchilditem.lastwritetime -gt DateToCompare)
......其實 - 我希望把輸出到CSV - 我的任何想法怎麼能做這個?
CODE:
$path = Read-Host "Please enter the path of the folder yu wish to check - this will check sub-folders as well"
Write-Host "`n"
$days = Read-Host "Please enter in number of DAYS you wish to go back"
$DateToCompare = (Get-Date).AddDays(-$days)
$runningtrue = Get-ChildItem $path -Recurse | where-object {$_.lastwritetime -gt $DateToCompare}
Write-Host "`n"
$runchilditem = @(Get-ChildItem $path -Recurse)
if ($runchilditem.lastwritetime -gt DateToCompare)
{
Write-Host "No Files Matching Date Criteria Found"
}
else
{
$runningtrue
}
所以,你只是想顯示的文件比指定或顯示的日期更近如果沒有更近的消息,這些消 – EBGreen
嗨 - 是的,所以如果一個文件超過90天,那麼顯示這些文件。 – lara400