我编写了一个简单的 PowerShell 脚本,用于将目录备份到 C:\
,然后在其期限 = X 天时删除任何备份文件夹。
出于某种原因,当我使用 Remove-Item
cmdlet 时,我得到一个 Remove-Item: Cannot find path 'C:\Windows\system32\[Sub-Folder name ]' 因为它不存在
错误。
下面是片段:
$TargetFolder = "C:\Folder\"
$Folders = get-childitem -path $TargetFolder
foreach ($Folder in $Folders)
{
remove-item $Folder -recurse -force
}
在 $TargetFolder = "C:\Folder\"
中,有几个子文件夹。
示例:C:\Folder\SubfolderA
、C:\Folder\SubfolderB
等。
当我为 $Folder
执行 Write-Host
时,它会正确列出 SubFolderA
、SubFolderB
等所以我不太确定为什么会收到找不到路径
错误。
最佳答案
看来你是想在目录LastWriteTime的基础上做这件事,但是你没有在Get-ChildItem上提到-Directory。
[cmdletbinding()]
Param()
$TargetFolder = "C:\Users\lit\Documents"
$Folders = Get-ChildItem -Path $TargetFolder -Directory
$Days = 80
foreach ($Folder in $Folders) {
if ($Folder.LastWriteTime -lt (Get-Date).AddDays(-$Days)) {
Write-Verbose "Deleting directory $($Folder.FullName)"
Remove-Item -WhatIf "$($Folder.FullName)" -Recurse -Force
}
}
关于powershell - 使用删除项 cmdlet 时找不到路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40491642/