powershell - Powershell 无法完全匹配文件夹全名
问题描述
我有一个脚本可以使用 powershell get-childitem 命令获取文件夹中的所有文件。我正在使用带有匹配参数的管道来过滤文件名,如下所示:
Get-ChildItem -Path \\path\* -recurse | Where-Object {$_.FullName -match 'backup'}
预期结果:
只有文件夹名称完全匹配“备份”才会出现在结果中,备份 2 不应该出现在结果中。
似乎 match 参数的行为类似于 'backup*',尝试了其他比较运算符,例如 -ceq、-eq、-like、-contains 等,但它们都没有按预期工作,它们中的大多数根本不返回任何结果。我应该使用什么比较运算符,或者这个问题有其他解决方案吗?
解决方案
-match
使用正则表达式并检查字符串是否包含它(确实像'*backup*'
)。但是,您从中获得的字符串$_.fullname
用于\
分隔文件夹。所以我们可以检查'\backup\'
. 但是由于-match
使用正则表达式,我们需要转义\
with \
:
...| Where-Object {$_.FullName -match '\\backup\\'}
推荐阅读
- python - 如何遍历包含多个列表和元组的列表
- vue.js - 如何使用 vue cli 3 构建电子应用程序?
- amazon-web-services - 如何调试 AWS EC2 实例随机变得无法访问
- javascript - Select2 下拉菜单根本不会关闭
- delphi - 设计一个继承自 cxCheckList 的自定义清单,其中包含 Orpheus 清单框的功能
- python-3.x - 'list' 对象不可调用:TypeError
- php - Laravel 5.8 重定向你太多次,中间件问题
- c# - 如何使用 C# 在谷歌驱动器中创建文件夹而不重复?
- swift - 点击事件不会在动画图像视图上触发
- javascript - 如何在移动网络中录制高于 7700 Hz 的声音?