2017-04-03 36 views
2

我不明白为什么Get-ChildItem cmdlet的这两个参数不起作用。为了让我的问题尽可能清楚,请看下面的例子。从PowerShell的ISE命令窗格:Get-ChildItem排除和文件参数不能一起工作

  • 类型“目录” - >显示在当前目录下的所有文件和子文件夹。

  • 输入'dir -File' - >显示原始列表减子文件夹。

  • 输入“dir -Exclude”* .txt“' - >显示原始列表减.txt文件。

  • 输入“dir -File -Exclude”* .txt“' - > NOTHING显示。

我希望原始列表减去子文件夹和.txt文件。但不管我用什么参数来表示“排除”,我都没有列出任何项目。 我已经看了Get-ChildItem -full文档,以及相关文章(Stack Overflow)和其他可靠资源,但仍不明白为什么会失败。当添加“-File”时,即使是经典的“-Include'* .txt'-Exclude'A *'”示例也会失败。我怎样才能使用-File和-Exclude在一起?

+5

您需要'Get-ChildItem * -File -Exclude * .txt' –

回答

1

虽然dir是Get-ChildItem的别名,但我发现最好在提供答案时使用完整的cmdlet。

要使用正确的PowerShell命令这将是最适合你使用以下命令:

Get-ChildItem * -Exclude "*.txt" -File 

什么,你在上面看到的是PowerShell命令来获得在指定的路径中的所有项目(使用*假设你想从当前位置的所有项目)

您还可以使用-Path并提供路径到你想获得的物品为好,如位置:

Get-ChildItem -Path "C:\Path\Folder" -Exclude "*.txt" -File 
+0

'dir'是'Get-ChildItem'的别名,cmd的'dir'是分开的。 –

+0

啊,是的,你是正确的@BaliC,对不正确的信息道歉。我会改变我的答案,谢谢你让我知道。 – Random206