【发布时间】:2015-02-16 21:38:48
【问题描述】:
已经有一些关于 Get-ChildItem 语义的讨论,但我仍然很难理解一些场景。
假设我有以下文件结构
C:\Test
│ TestFile1.txt
| TestFile2.txt
│
├───SomeFolder
│ │ IgnoreFile1.txt
│ └───IgnoreFile2.txt
│
└───OtherFolder
我想运行一个命令来选择除 OtherFolder 之外的所有内容并将其通过管道传输到另一个命令中。 (为了完整起见,我实际上要做的是将所有内容移至 OtherFolder,因此最终结果是其他文件夹包含 TestFile 和 SomeFolder 及其子文件夹)
对 Get-ChildItem 的任何摆弄似乎都无法给我想要的结果。举个简单的例子:
Get-ChildItem *.txt -Exclude TestFile1.txt
返回预期结果。仅限 TestFile2.txt。
Get-ChildItem *Folder
返回两个文件夹。然而:
Get-ChildItem *Folder -Exclude OtherFolder
而是返回 SomeFolder 的子级。我真的不明白到底发生了什么。为什么添加 -Exclude 会导致返回文件夹内容。我已经尝试在文件夹中放置额外级别的文件来测试它是否是递归的,但它似乎只下降了一层。
如何在排除一个(或多个)目录的同时获取目录中的文件和文件夹列表?
【问题讨论】:
标签: powershell directory get-childitem