【发布时间】:2017-07-28 17:40:19
【问题描述】:
我是 PowerShell 的新手,对它了解不多。
如果其中的所有文件都超过 x 天,我正在寻找一种删除文件夹和所有子文件夹的方法。我有一个代码可以删除文件夹和所有子文件夹中的所有文件,但我不知道如何正确更改。
$Now = Get-Date
$Days = "30"
$TargetFolder = "C:\temp"
$Extension = "*.*"
$LastWrite = $Now.AddDays(-$Days)
$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse | Where {($_.CreationTime -le "$LastWrite") -and ($_.LastWriteTime -le "$LastWrite")}
foreach ($File in $Files)
{
if ($File -ne $NULL)
{
write-host "Deleting File $File" -ForegroundColor "Red"
Remove-Item $Location.FullName | out-Null
}
else
{
Write-Host "No more files to delete!" -foregroundcolor "Green"
}
}
【问题讨论】:
-
30 天前创建还是修改?
-
两者都必须得到尊重,因为如果您在 2015 年下载了一个文件,ModifieDate 是 2015 年,而您在 2017 年 22 月 2 日将其移至“C:\temp”,而不是 CreationDate想删除它。
-
复制文件不会修改创建日期或写入时间,不知道你想如何实现
-
好吧,不如说是 30 天前创建的 :)
标签: powershell directory