arrays - Powershell - LIKE 针对数组

标签 arrays powershell sql-like

对于每个正在处理的文件,都会检查其名称是否满足条件。例如,给定以下过滤器列表:

$excludeFiles = @"
aaa.bbb
ccccc.*
ddddd???.exe
"@ | SplitAndTrim;

如果文件与任何行匹配,则应将其排除在处理之外。尽量避免 match/regex,因为这个脚本需要由不知道它的人修改,并且有几个地方需要实现。

$excludedFiles 和类似的内容被故意定义为此处字符串。它允许最终用户/运算符(operator)直接从 CMD/Powershell 窗口粘贴一堆文件名。

Powershell 似乎不接受数组的 -like,所以我不能这样写:

"ddddd000.exe" -like @("aaa.bbb", "ccccc.*", "ddddd???.exe")

我错过了一个选项吗?如果 Powershell 本身不支持,那么最简单的实现方法是什么?

最佳答案

这是已接受答案中模式的简短版本:

($your_array | %{"your_string" -like $_}) -contains $true

应用于OP中获得的案例

PS C:\> ("aaa.bbb", "ccccc.*", "ddddd???.exe" | %{"ddddd000.exe" -like $_}) -contains $true
True

关于arrays - Powershell - LIKE 针对数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019218/

相关文章:

powershell - 如何通过Powershell将Jenkins BUILD_NUMBER打印到.txt文件

windows - 在打印机上启用共享并设置共享名

json - 终端进程终止,退出代码为 : 1

mysql - 基于来自另一个字段的 LIKE 构建 MySQL 表

MySQL 工作台。如何使用 LIKE、OR 和 AND 设置多个条件

mysql - 使用跨所有列的多个 Ruby 查询创建 CSV

Java教科书: "the size of an array must be known at compile time"

php - MYSQL/PHP 搜索未找到数据库中的所有记录

javascript - 通过 jQuery .each 在嵌入式数组上使用 find()

python - 如何在 numpy 中创建 2D "rect"数组(1's, else 0' 的方 block )?