来自文档:
-Include
仅检索指定的项。此参数的值限定Path参数。输入路径元素或模式,例如"*.txt“。允许使用通配符。
仅当命令包含Recurse参数或路径指向目录的内容(如C:\Windows*,其中通配符指定C:\Windows目录的内容)时,Include参数才有效。
我的第一个理解是:
c:\test\a.txt
c:\test\b.txt
因此,要获得'a.txt‘和'b.txt’,我可以这样写:
gci -Path "c:\test\*" -Include "*.txt"
这是可行的。但现在考虑这样的层次结构:
c:\test\a.txt
c:\test\b.txt
c:\test\c.txt\c.txt
相同的命令返回: a.txt、b.txt、c.txt
实际的逻辑似乎是:
用于匹配-Path指定的所有实体的
-Include。如果匹配的元素是一个文件-返回它。如果匹配的元素是一个文件夹,则查看内部并返回匹配的第一级子元素。
此外,文档还说:
包含参数仅在命令包含
参数或路径指向目录内容时有效...
这也是错误的。例如。
gci -Path "c:\test" -Include "*.txt"
它不返回任何内容,而如果没有-Include,我将获得文件夹内容。所以-Include绝对是“有效的”。这里到底发生了什么?测试指定“c:\ -Path”,-Include尝试匹配此路径。由于"*.txt“与"test”不匹配,因此没有返回任何内容。但看看这个:
gci -Path "c:\test" -Include "*t"
它返回a.txt、b.txt和c.txt作为匹配"*t“的测试,并匹配所有子项。
毕竟,即使现在知道了Include是如何工作的,我也不知道什么时候使用它。为什么我需要它在子文件夹中查找?为什么要这么复杂呢?
https://stackoverflow.com/questions/790796
复制相似问题