powershell - 使用删除项 cmdlet 时找不到路径

标签 powershell

我编写了一个简单的 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\SubfolderAC:\Folder\SubfolderB 等。

当我为 $Folder 执行 Write-Host 时,它会正确列出 SubFolderASubFolderB 等所以我不太确定为什么会收到找不到路径错误。

最佳答案

看来你是想在目录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/

相关文章:

powershell - 我可以混合Get-Date和[DateTime]::FromFileTime获得正确的日期吗

powershell - Windows PowerShell 2.0(绝对入门)-书中最后一个项目的错误

azure - 如何将 AzureKeyVault 中的 secret 用于 PowerShell -Credential?

powershell - IIS6 列出应用程序池正在运行的 .net 版本

powershell - 在 PowerShell 中重命名文件夹并创建新文件夹

windows - 如何使用 CLI 比较两个列表

powershell - PowerShell控制台和PowerShell ISE之间的区别

powershell - Powershell脚本错误

azure - 通过 Powershell cmdlet Get-AzureRMDeployment 下载 Azure 服务配置 (.cscfg)

powershell - 有没有办法引用先前输入的命令的倒数第二个单词(例如 $^ 代表第一个单词, $$ 代表最后一个单词)