PowerShell Remove-Item排除文件夹文件

时间:2019-07-16 17:47:22

标签: powershell

我有一个简单的脚本,该脚本用于从文件夹中删除文件。该脚本接受两个参数:

  1. 要从中删除的文件夹的路径
  2. 要从删除中排除的项目列表

这是我拥有的脚本:

Param(
    [Parameter(Mandatory=$True)]
    [string]$pathDeleteFrom,
    [Parameter(Mandatory=$True)]
    [string[]]$excludeFiles
)

Remove-Item -path $pathDeleteFrom -exclude $excludeFiles -Recurse

我正在测试具有以下结构的文件夹中的脚本:

enter image description here

示例(为路径“ C:/ test / files / *”运行脚本):

  • 如果排除"*.txt",则仅删除.json文件。

  • 如果我想删除除文件夹及其内容以外的所有文件,我尝试排除"folder""folder/*"除外,但这似乎不起作用。

我无法理解的是,我是否有办法使用通配符排除"folder"及其内容。

我知道这可能是一个简单的问题,但是我尝试过在线搜索,但是找不到与我所遇到的情况类似的示例。

1 个答案:

答案 0 :(得分:1)

这应该完成您要完成的工作...只需填写空白,然后将条件语句修改为所需的内容即可。

$items = Get-ChildItem -Path "Directory Path" -Recurse

foreach($item in $items)
{
    if($item.name -like "*.TXT" -or $item.name -like "*.Json")
    {
        #CODE HERE
    }
    elseif(($item.GetType()).Name-eq "DirectoryInfo" -and $item.name -eq "Directory Name")
    {
        #CODE HERE
    }
}