【发布时间】:2023-03-23 09:00:01
【问题描述】:
我有一个 powershell 脚本,它遍历一个目录并删除超过 18 个月的文件。大多数文件遵循以下命名约定:
20140628
但是,有些文件没有。我试图让脚本忽略这些文件,只删除遵循命名约定的文件。但是,出于某种原因,下面的脚本正在执行与此完全相反的操作,并删除不遵循命名约定的文件并留下那些遵循的文件。我将如何修改脚本以满足我的需要?任何帮助将不胜感激。
$targetdirectory = "\\DPR320-W12-1600\PRTG"
$CleanupList = Get-ChildItem $targetdirectory\test
$Threshold = (get-date).AddMonths(-18)
$culture = [Globalization.CultureInfo]::InvariantCulture
foreach ($DirName in $CleanupList)
{
try {
[datetime]::ParseExact($DirName.BaseName, 'yyyyMMdd', $culture)
Remove-Item $DirName.FullName -Force -Recurse
}
catch {
continue
}
}
【问题讨论】:
-
“清理”过程在哪里?
标签: windows shell powershell foreach try-catch