2017-03-27 56 views
-1

我想刪除比x天更早的文件,在下面的例子中是5。我試圖在下面使用,但它不工作,也不會拋出錯誤。如何刪除x天以前的文件?

Get-ChildItem –Path 「E:\del」 –Recurse | Where-Object{$_.CreationTime –lt(Get-Date).AddDays(-5)} | Remove-Item 
+3

您嘗試使用,很好的瞭解。發生了什麼? – Clijsters

+0

你真的確定你有版本1,並沒有對它所在的目錄感到困惑:http://stackoverflow.com/questions/1825585/determine-installed-powershell-version? – Matt

+0

@Clijsters _nor拋出一個error_,它會告訴我'Where-object'子句沒有按照他的預期工作。 – Matt

回答

1

這是您可以採取的方法。

$Path = E:\del 
$DaysBack = "-5" 
$CurrentDate = Get-Date 
$DatetoDelete = $CurrentDate.AddDays($DaysBack) 

#delete files from $Path directory that are older than $Daysback 
Get-ChildItem -Path $Path -Include * -Recurse | Where-Object {$_.LastWriteTime -lt $DatetoDelete} | Remove-Item -ErrorAction SilentlyContinue -Recurse -Force 
-1

試試這個:

$cleanup_days = 5 
$cleanup_lastWrite = $now.AddDays(-$cleanup_days) 

Get-ChildItem -Path "E:\del" | Where-Object { $_ -is [System.IO.FileInfo] } | ForEach-Object { 
    If ($_.LastWriteTime -lt $cleanup_lastWrite) 
    { 
     Remove-Item $("E:\del\" + $_) 
    } 
} 
+0

您需要聲明$ now或者它會拋出一個錯誤。嘗試添加'$ now = Get-Date'以及其他變量。 –

相關問題