x日より古いファイル、以下の例では5を削除します。私は以下を使用しようとしましたが、動作していない、またはエラーを投げています。x日より古いファイルを削除するにはどうすればよいですか?
Get-ChildItem –Path “E:\del” –Recurse | Where-Object{$_.CreationTime –lt(Get-Date).AddDays(-5)} | Remove-Item
x日より古いファイル、以下の例では5を削除します。私は以下を使用しようとしましたが、動作していない、またはエラーを投げています。x日より古いファイルを削除するにはどうすればよいですか?
Get-ChildItem –Path “E:\del” –Recurse | Where-Object{$_.CreationTime –lt(Get-Date).AddDays(-5)} | Remove-Item
あなたが取ることができるアプローチは次のとおりです。
$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
これを試してみてください:
$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\" + $_)
}
}
$ nowを宣言する必要があります。そうしないとエラーになります。あなたの他の変数と共に '$ now = Get-Date'を追加してみてください。 –
あなたが知って良い、使用しようとしました。何が起こった? – Clijsters
バージョン1を持っていて、それが存在するディレクトリについて混乱しないと本当に確信していますか?http://stackoverflow.com/questions/1825585/determine-installed-powershell-version? – Matt
@Clijsters _それがerror_をスローしていないと、 'Where-object'節が期待どおりに動かないことがわかります。 – Matt