Powershell 在以指定字母开头的目录中递归列出文件
我正试图通过PowerShell获取特定目录中的所有Powershell 在以指定字母开头的目录中递归列出文件,powershell,powershell-4.0,Powershell,Powershell 4.0,我正试图通过PowerShell获取特定目录中的所有*.html文件。 文件夹结构如下所示: folder subfolder1 subfolder2 subfolder3 subfolder4 ... Get-ChildItem -Directory b* | Select -ExpandProperty FullName | % {Get-ChildItem $_\*.html} 子文件夹按字母顺序排列。存在从a到z的文件夹。现在我想获取文件夹中以字母b开头的所有.h
*.html
文件。
文件夹结构如下所示:
folder
subfolder1
subfolder2
subfolder3
subfolder4
...
Get-ChildItem -Directory b* | Select -ExpandProperty FullName | % {Get-ChildItem $_\*.html}
子文件夹按字母顺序排列。存在从a到z的文件夹。现在我想获取文件夹中以字母b开头的所有.html
文件
我试过了
Get-ChildItem -Path *.html -Recurse -Force
这将提供所有文件夹中的所有
html
文件。但是如何限制路径,使其只检查以b开头的子目录?我不确定这是否是最有效的,但您可以这样做:
folder
subfolder1
subfolder2
subfolder3
subfolder4
...
Get-ChildItem -Directory b* | Select -ExpandProperty FullName | % {Get-ChildItem $_\*.html}
或者,根据需要,您也可以执行
getchilditem-Directory b*-Recurse
您可能需要格式化
Get ChildItem$\ucode>,这取决于您希望输出的外观,因为默认情况下它会写入目录。我不确定这是否是最有效的,但您可以这样做:
folder
subfolder1
subfolder2
subfolder3
subfolder4
...
Get-ChildItem -Directory b* | Select -ExpandProperty FullName | % {Get-ChildItem $_\*.html}
或者,根据需要,您也可以执行getchilditem-Directory b*-Recurse
您可能需要根据您希望输出的外观设置Get ChildItem$的格式,因为默认情况下它会写入目录。*.html
->b*.html
?*.html
->b*.html
?(Get ChildItem-目录b*)。全名|%{Get ChildItem$\*.html}
将执行得更快。。。和递归(Get ChildItem-Directory b*).fullname |%{Get ChildItem$|-recurse*.html}
我找到的最简单的方法是get childitem b*-recurse*.html
,它可以放在括号中。fullname如果你希望这样,我确实测量了命令,它们在一棵大树上的执行几乎相同。从逻辑上讲,它的执行速度会更快,但仔细考虑后,由于处理块是第一个get子项,这取决于磁盘速度,因此您可能有一个非常有效的观点。不管怎样,奇怪的是,我发布的最后一个命令的速度只有原来的一半,即使没有管道。另外,在1循环中,measure命令不可靠,最好执行类似于$measure=measure命令{1..100 | foreach{command to test}的操作$measure.millides/100
(Get ChildItem-目录b*)。fullname |%{Get ChildItem$\u\*.html}
将执行得更快。。。和递归(Get ChildItem-Directory b*).fullname |%{Get ChildItem$|-recurse*.html}
我找到的最简单的方法是get childitem b*-recurse*.html
,它可以放在括号中。fullname如果你希望这样,我确实测量了命令,它们在一棵大树上的执行几乎相同。从逻辑上讲,它的执行速度会更快,但仔细考虑后,由于处理块是第一个get子项,这取决于磁盘速度,因此您可能有一个非常有效的观点。不管怎样,奇怪的是,我发布的最后一个命令的速度只有原来的一半,即使没有管道。另外,在1循环中,measure命令不可靠,最好执行类似于$measure=measure命令{1..100 | foreach{command to test}的操作$测量值为0.5毫秒/100