删除powershell脚本中的某些文件

时间:2016-06-28 14:31:36

标签: windows shell powershell foreach try-catch

我有一个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
}

}

1 个答案:

答案 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阻止。