0

我正在尝试获取本地文件夹中所有 txt 文件的列表。

$dir = "C:\report\"
Get-ChildItem -Path $dir -File -Include "*.txt"

上面的代码没有返回任何内容,但是当我在路径前添加通配符*时,该命令按预期工作并返回 txt 文件列表。

$dir = "C:\report\*"
Get-ChildItem -Path $dir -File -Include "*.txt"

如果没有-Include "*.txt"参数,我会得到这两种情况下所有文件的列表(System.IO.FileInfo对象)

我想知道为什么添加-Include "*.txt"会导致这种模棱两可的行为?我是 PowerShell 的新手,我正在使用 Powershell 7。提前致谢。

4

1 回答 1

0

Include参数在与开关结合使用时起作用,或者正如您通过附加到路径Recurse 所注意到的那样,这意味着递归。\*

如果您不希望 cmdlet 在子文件夹中递归,请-Filter '*.txt'改用。

于 2020-11-19T09:56:25.477 回答