2017-03-27 10 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 _それが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'を追加してみてください。 –

関連する問題