我正在尝试仅在一个子文件夹中获取.csv(及相关属性)中的文件列表并没有成功。 这是我的情况:
Root
|
| - Folder 1
| | - xxxxxx
| | - yyyyyyy
| | - INTERESTED_FOLDER (that contains files requested)
|
| - ...
|
| - Folder n:
| - xxxxxx
| - yyyyyy
| - INTERESTED_FOLDER (that contains files requested)
我在网上找到的例子谈到了在所有子目录中获取所有文件名,当我需要只搜索一个但迭代所有根文件夹1-n时。 谢谢你的帮助。
答案 0 :(得分:0)
您可以使用Get-ChildItem cmdlet首先检索所有文件夹1-n
,而不是再次调用它并过滤INTERESTED_FOLDER
,最后再调用它以检索其中的所有项目导出csv:
Get-ChildItem | ? { $_.PSIsContainer } |
Get-ChildItem -Filter 'INTERESTED_FOLDER' | ? { $_.PSIsContainer } |
Get-ChildItem -Recurse |
Export-Csv -Path c:\content.csv
答案 1 :(得分:0)
使用INTERESTED_FOLDERs
参数一次抓取所有-Include
,然后获取所有这些内容。
如果您使用Where-Object,那么PowerShell将检索所有项目,然后过滤它们,这需要更长的时间,如果您有很多项目可能会很重要(您可以通过在Measure-Object
中包含代码块来评估差异声明)。始终尝试使用本机提供程序的过滤功能,因为这将减少执行时间。如果您使用的是PowerShell v3或更高版本,则Get-ChildItem中提供了文件或文件夹的其他参数:
Get-ChildItem -Path $Path -Recurse -Directory -Include 'INTERESTED_FOLDER','INTERESTED_FOLDER1' |
Foreach-Object {Get-ChildItem $_ -File} |
Export-Csv -Path $OutPutFile -NoTypeInformation