【发布时间】:2014-08-08 00:05:37
【问题描述】:
我正在尝试执行以下命令来清除临时目录中的文件。如果某一天有多个文件,我应该只保留最新的文件。
$groups = get-ChildItem -Path "D:\Temp\Archive" -Filter "*_bak.zip" | ?{-not $_.PsIsContainer} | Group {$_.LastWriteTime.ToString("yyyy-MM-dd")}
if($groups -ne $NULL){
ForEach ($files in $groups) {
"Count: $($files.Count)"
if ($files.Count -gt 1) {
$files | Sort LastWriteTime | Select-Object -First ($files.Count - 1) | Remove-Item -Force -WhatIf
}
}
}
但是,我收到以下错误。我正在以管理员身份执行这些命令。并且,执行策略设置为无限制。
Remove-Item:找不到路径“C:\Windows\system32\Microsoft.PowerShell.Commands.GroupInfo”,因为它不存在。 在 D:\User1\Tasks\Delete_backup_files.ps1:86 char:87 + $文件 |排序 LastWriteTime |选择对象-First ($files.Count - 1) |删除项目
Remove-Item 命令在我使用 UNC 路径时可以正常工作。
$files.FullName 没有值。我怀疑这可能是问题所在。但是,我不确定如何解决它。我需要分组逻辑保持原样。
希望有人能帮帮我。
谢谢!
【问题讨论】:
-
system32下删除文件失败其实是好事!
标签: powershell