当前位置 : 主页 > 网络推广 > seo >

如何从PowerShell中检索递归目录和文件列表,但不包括某些文件和文件夹?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我想编写一个PowerShell脚本,它将递归搜索目录,但排除指定的文件(例如,* .log和myFile.txt),并排除指定的目录及其内容(例如,myDir和所有文件和myDir下面的文件夹)。 我一直在使用 Get
我想编写一个PowerShell脚本,它将递归搜索目录,但排除指定的文件(例如,* .log和myFile.txt),并排除指定的目录及其内容(例如,myDir和所有文件和myDir下面的文件夹)。

我一直在使用Get-ChildItem CmdLet和Where-Object CmdLet,但我似乎无法得到这种确切的行为。

Get-ChildItem cmdlet有一个很有用的-Exclude参数,但它不能用于从我所知道的过滤掉整个目录。尝试这样的事情:

function GetFiles($path = $pwd, [string[]]$exclude) 
{ 
    foreach ($item in Get-ChildItem $path)
    {
        if ($exclude | Where {$item -like $_}) { continue }

        if (Test-Path $item.FullName -PathType Container) 
        {
            $item 
            GetFiles $item.FullName $exclude
        } 
        else 
        { 
            $item 
        }
    } 
}
网友评论