Get-ChildItem -Exclude 参数如何工作?它遵循什么规则?
Get-ChildItem 的 Get-Help 根本不详细:
省略指定的项目。该参数的值限定
路径参数。输入路径元素或模式,例如“*.txt”。
允许使用通配符。
在 Stackoverflow 和其他地方,普遍的共识似乎是它太难使用,我们都应该将 Get-ChildItem 的输出通过管道传输到Where-Object。
虽然我愿意使用Where-Object,但我对下面的规则-Exclude 很好奇。
例如,我有一个包含以下子文件夹的文件夹:
HsacFixtures
HsacFixturesBuild
RestFixture
RestFixtureBuild
如果我执行以下命令:
Get-ChildItem $rootFolderPath -Exclude HsacFixturesBuild -Directory
它返回预期的结果:
HsacFixtures
RestFixture
RestFixtureBuild
但是,如果我添加 -Recurse 参数:
Get-ChildItem $rootFolderPath -Exclude HsacFixturesBuild -Directory -Recurse
然后它返回 HsacFixturesBuild 文件夹中的子文件夹。
我也尝试过HsacFixturesBuild\
and HsacFixturesBuild\*
,具有相同的结果。
那么 -Exclude 是否仅适用于直接子文件夹,而不适用于孙子文件夹或更深的子文件夹?