删除特定扩展名以外的文件夹中的所有文件

时间:2017-08-21 14:27:12

标签: windows powershell

如何使用Windows命令行删除扩展名为.xml文件的文件夹中的所有文件。如果没有要删除的文件,退出代码应为0。

1 个答案:

答案 0 :(得分:1)

这可以通过简单的Google搜索轻松解决。 Go here and learn about -Exclude on Get-ChildItem

Zabuza的指导在这里引起了更多的关注。正如Shawn对上述问题的评论指出的那样。这可以通过管道传递给Remove-Item的Get-ChildItem -Exclude * .xml来实现。

Get-ChildItem -Path <Enter your path here> -Exclude *.xml | Remove-Item 

编辑:要跟踪是否没有文件要删除一个简单的计数器将使用管道工作沟渠并做一个简单的foreach循环:

    $filesDeleted = 0
    $filesToDelete = Get-ChildItem -Path <SomePath> -Exclude *.xml
    foreach($file in $filesToDelete)
    {
        $file | Remove-Item 
        $filesDeleted ++
    }

    if($filesDeleted -eq 0)
    {
        Write-Warning -Message "No files were found to delete."
    }
    else
    {
        Write-Verbose -Message "$filesDeleted file(s) were deleted."
    }

旁注:今天想到这个问题,当这个问题在我的大脑中出现时,文件删除计数确实有一个小问题,因为非终止错误仍会使计数器上升,即使文件没有被删除导致删除的文件数量可能存在误报。您可能需要执行-ErrorAction Stop以捕获这些实例,或者添加更多代码以对已删除的项执行快速Test-Path以验证它是否已成功删除。