匹配正则表达式的文件名,但在带通配符的文件夹中

吉利斯

这是以下问题:PowerShell将Get-ChildItem的输出连接起来

这段代码可以正常工作:

Get-ChildItem -Path "D:\Wim\TM1\TI processes" -Filter "*.vue" -Recurse -File |
    Where-Object { $_.BaseName -match '^[0-9]+$' } |
    ForEach-Object { ($_.FullName -split '\\')[-2,-1] -join '\' } |
    Out-File D:\wim.txt

但我需要将搜索文件夹限制为仅某些文件夹,基本上是以下过滤器:(D:\Wim\TM1\TI processes\\*}vues因此所有以结尾的子文件夹}vues)。

如果添加该通配符条件,将不会有任何结果。没有限制,我得到正确的结果。请问这可能吗?

没有过滤器

带过滤器

这样做的目的是摆脱第一个输出中的第三行(这是我的复制/粘贴),并尽量减少要查看的文件夹数量。

mklement0

您可以嵌套两个Get-ChildItem调用:

  • An outer Get-ChildItem -Directory -Recurse call to filter directories of interest first,

  • an inner Get-ChildItem -File call that, for each directory found, examines and processes the files of interest.

Get-ChildItem -Path "D:\Wim\TM1\TI processes" -Filter "*}vues" -Recurse -Directory |
  ForEach-Object {
    Get-ChildItem -LiteralPath $_.FullName -Filter "*.vue" -File | 
      Where-Object { $_.BaseName -match '^[0-9]+$' } | 
        ForEach-Object { ($_.FullName -split '\\')[-2,-1] -join '\' }                 
  } | Out-File D:\wim.txt

Note: The assumption is that all *.vue files of interest are located directly in each *}vues folder.


As for what you tried:

Given that you're limiting items being enumerated to files (-File), your directory-name wildcard pattern *}vues never gets to match any directory names and, in the absence of files matching that pattern, returns nothing.

通常,-Recurse从概念上讲,更干净的方法是将通配符模式直接附加到自-Path变量,以更好地表明该模式将在子树的每个目录中匹配

在您的情况下,您会注意到尝试进行双重过滤,因为您使用了-Filter参数。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

不带文件名的文件夹路径的正则表达式

匹配文件名,带前缀,少量数字和后缀正则表达式

Python正则表达式文件名匹配

正则表达式匹配文件名

正则表达式无法匹配文件名

正则表达式以匹配KB文件名

使用正则表达式匹配文件名

文件名约定匹配的正则表达式

正则表达式:从 Y 文件夹中查找 X 扩展名的文件

正则表达式匹配文件夹和所有子文件夹

正则表达式以捕获具有相同名称的文件名和文件夹

正则表达式以匹配文件夹结构中的有效路径

使用正则表达式匹配URL中的特定文件名

正则表达式以匹配行并提取Java中的文件名

正则表达式:在目录结构中匹配并保存文件名

使用python中的模式或正则表达式匹配检查文件名

正则表达式匹配路径中的文件名

如何从C#中匹配的正则表达式计算文件名的结果

匹配文件名而不是python正则表达式中的子字符串

Python正则表达式匹配整个文件名包括文件扩展名

文件路径上的正则表达式,以匹配不以某些单词开头的文件名

python中的正则表达式根据匹配的文件名的开头和结尾对文件进行分组

正则表达式以匹配没有匹配文件名的url目录路径

根据文件和文件夹名称的正则表达式匹配将文件复制到文件夹中

Javascript正则表达式匹配扩展名的文件名

文件夹路径的正则表达式

正则表达式匹配某些子文件夹,并忽略其子文件夹

正则表达式验证文件名

正则表达式文件名