使用remove-item cmdlet时找不到路径

Mik*_*ike 2 powershell

我写了一个简单的PowerShell脚本来备份目录C:\,然后在其年龄= X天时删除任何备份文件夹.

出于某种原因,当我使用Remove-Itemcmdlet时,我遇到了Remove-Item: Cannot find path 'C:\Windows\system32\ [Sub-Folder name]' because it does not exist错误.

以下是片段:

    $TargetFolder = "C:\Folder\"
    $Folders = get-childitem -path $TargetFolder
    foreach ($Folder in $Folders)
    {
      remove-item $Folder -recurse -force
    }
Run Code Online (Sandbox Code Playgroud)

在其中$TargetFolder = "C:\Folder\",有几个子文件夹.例如:C:\Folder\SubfolderA,C:\Folder\SubfolderB,等.

当我做Write-Host$Folder它列出SubFolderA,SubFolderB等等,正确的,所以我不知道是什么原因,我得到一个Cannot find path错误.

lit*_*lit 5

您似乎希望在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
    }
}
Run Code Online (Sandbox Code Playgroud)