我有一个文件夹结构d:\domains\<domain>\folder1\folder2\folderx
可能有20个<domain>
文件夹,它们下面的文件夹级别不同。
我想在所有文件夹中搜索.php
文件,然后仅在退出时打印唯一的<domain>
文件夹。
因此,例如,如果在
我只想打印
domain1.com,domain2.com
。它需要在PowerShell v2中工作。我有以下内容,但它仅显示第一个域?
Get-ChildItem -Path @(Get-ChildItem -Path D:\domains | Where-Object {$_.PSIsContainer})[1].FullName -Recurse *.php |
Select-Object -ExpandProperty FullName
最佳答案
枚举域文件夹,然后筛选其中包含.php文件的文件夹。
Get-ChildItem 'D:\domains' | Where-Object {
$_.PSIsContainer -and
(Get-ChildItem $_.FullName -Filter '*.php' -Recurse)
}
如果您具有PowerShell v3或更高版本,则可以使用
-Directory
开关而不是检查$_.PSIsContainer
:Get-ChildItem 'D:\domains' -Directory | Where-Object {
Get-ChildItem $_.FullName -Filter '*.php' -Recurse
}
如果只需要文件夹/域名,请从输出中选择
Name
属性:... | Select-Object -Expand Name
关于powershell - 查找并递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48539759/