使用 Powershell 过滤文件扩展名

狼光

我喜欢搜索一些带有预定义扩展名的旧文件。(如 .doc、.xls、.txt 等)在特定文件夹中。我将扩展名放在一个变量中:

$wildcards = @(".txt",".doc",".xls")

当我在这个变量中放置一个新值时,它必须更改另一个变量。($collection)

这是我的代码:

$folder = Get-ChildItem C:\test\test1\
$date = (Get-Date).Add(-1)
$wildcards = @(".txt",".doc",".xls")


function Get-WildCards { 

$counter = 0;
$counterEnd = $wildcards.Count
$collection = New-Object System.Collections.ArrayList 
$filter = "$" + "_.Extension" + " -like $" + "wildcards[" + $counter + "]}"
$or = " -or "

    for ($counter = 0; $counter -lt $counterEnd; $counter++) {

        $filter = "$" + "_.Extension" + " -like $" + "wildcards[" + $counter + "]}"
        $collection += $filter + $or
    }

$collection = [String]::Join('', $collection)
$collection = $collection.ToString()
$collection = $collection.TrimEnd($or)
} 

Get-WildCards

$folderPath = $folder.FullName

$files = Get-ChildItem -Path $folderPath -File:$true |
 Where-Object {$collection} 

$files

如果我运行此代码,Where-Object 条件将不会以这种方式工作。它不会过滤扩展名。我怎样才能实现它的工作原理?任何帮助表示赞赏。

维维克·库马尔·辛格

你似乎把事情复杂化了。试试这个 -

$folder = Get-ChildItem C:\test\test1\
$wildcards = @(".txt",".doc",".xls")
$files = Get-ChildItem -Path $folderPath | where {$_.extension -in $wildcards}
$files

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用PowerShell按名称文件和其他扩展名文件过滤文件?

我无法使用Powershell更改多个文件的扩展名

使用PowerShell递归查找文件扩展名的数量

使用powershell在linux发行版中获取文件名和文件扩展名

使用jfilechooser java动态文件扩展名过滤

PowerShell脚本使用扩展名查找文件并排除文件夹

我可以在没有扩展名的zip文件上使用PowerShell`Expand-Archive`吗

如何使用 Powershell 重命名包含空格字符的文件扩展名

使用 PowerShell 仅导出 .mp4 文件扩展名

使用Powershell更改目录中文件的编码和扩展名

使用PowerShell重命名具有相同扩展名的多个文件

如果使用 powershell 缺少扩展名,则不要移动文件

PowerShell 3的文件扩展名

使用os.walk过滤文件扩展名,但文件名受限制

使用Powershell对文件进行计数,但在计数和OCR扩展名中排除子文件夹

使用 PowerShell 重命名给定目录和子文件夹中没有扩展名的所有文件

如何使用API调用扩展名过滤文件名?

如何使用Powershell和set-acl在文件夹结构和特定扩展名之间复制权限?

在Windows 7上将文件重命名为md5 sum +扩展名(使用CMD或PowerShell 2013)

如何通过扩展名使用正则表达式过滤文件,但排除某些文件?

使用fnmatch.filter通过多个可能的文件扩展名过滤文件

RegExp使用目录和文件扩展名黑名单过滤特定文件路径

使用phpseclib nlist从SFTP文件夹中获取按后缀/扩展名过滤的文件

如何使用Java中的文件对话框过滤不带扩展名的文件

在Express JS中使用Multer基于扩展名过滤文件

如何使用骆驼组件File2中的include参数按扩展名过滤文件

使用 grep 的精确匹配文件扩展名过滤器

PowerShell重命名文件名并保留扩展名

使用.htaccess删除文件扩展名