我有一个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
}
}
答案 0 :(得分:0)
xslt.Transform(xmlReader, null, xws, xslResolver);
如果解析为日期失败,将抛出错误并且不会删除文件。
我甚至不确定此处是否需要$targetDirectory = "\\DPR320-W12-1600\PRTG"
$cleanupList = Get-ChildItem $(Join-Path $targetdirectory "test")
$threshold = (Get-Date).AddMonths(-18)
$culture = [Globalization.CultureInfo]::InvariantCulture
foreach ($dirName in $cleanupList) {
try {
$dateFromName = [datetime]::ParseExact($dirName.BaseName, "yyyyMMdd", $culture)
if($dateFromName -le $threshold) {
Remove-Item $dirName.FullName -Force -Recurse
}
} catch {
Continue
}
}
,但您无法删除Continue
阻止。