首页 > 解决方案 > PowerShell Remove-Item 不删除文件

问题描述

我正在尝试这样Remove-Item做,以删除我的 Powershell 脚本的源路径中的所有 xml 文件。它不会检索任何错误..但它也不会删除文件。

 Remove-Item –path $SourcePath* -include *.xml –recurse -force

SourcePath是正确的,因为脚本在他的前一部分中运行良好。

如果它在目标文件夹结果文件中复制权利,为什么它不会删除文件?

Param (
    [Parameter(Mandatory = $True)][String]$SourcePath,
    [Parameter(Mandatory = $True)][String]$DestinationPath,
    [Parameter(Mandatory = $True)][ValidateSet("utf8")][String]$Encoding
)

$Files = Get-ChildItem $SourcePath -include *.xml -Recurse 

If ($Files.Count -gt 0) {

    If (!($DestinationPath.Substring($DestinationPath.Length - 1) -eq "\")) {
        $DestinationPath = $DestinationPath + "\" + $Files[0].Directory.Name + "\"
    }
    Else {
        $DestinationPath = $DestinationPath + $Files[0].Directory.Name + "\"
    }

    If (!(Test-Path -Path $DestinationPath)) {New-Item -ItemType Directory -Path $DestinationPath | Out-Null}

    ForEach ($File in $Files) {
        Write-Host "Read and Convert $($File.Name)" -ForegroundColor Cyan
        Get-Content $File.FullName  | Set-Content -Encoding $Encoding ($DestinationPath + $File.Name) -Force -Confirm:$false
        Remove-Item –path $SourcePath* -include *.xml –recurse -force
    }

    Write-Host "Conversion of $($Files.Count) Files to $Encoding in $DestinationPath completed" -ForegroundColor Green
}
Else {
    Write-Host "Source-Directory empty or invalid SourcePath." -ForegroundColor Red
}

标签: powershell

解决方案


推荐阅读