无需知道PowerShell

时间:2016-07-14 13:55:20

标签: powershell

我想在主文件夹中找到子文件夹。

例如,我有一个名为build的文件夹,内部版本中有子文件夹作为示例XYZ,内部XYZ还有其他子文件夹,如ZYX ,里面还有其他文件夹。完整路径如:build\XYZ\ZYX\ABC

我想转到ABC,但是,我没有办法达到它。如何查找子文件夹并在PowerShell脚本中转​​到它。 Get-childItem会工作吗?如果是,怎么样?

3 个答案:

答案 0 :(得分:2)

您可以使用Get-ChildItem cmdlet检索所有目录,并使用Where-Object cmdlet排除包含子目录的所有文件夹:

Get-ChildItem 'your_path_to_build' -Recurse -Directory | Where-Object { ![IO.Directory]::GetDirectories($_.FullName) }

答案 1 :(得分:2)

您可以使用-Directory开关并使用以下命令递归搜索:

Get-ChildItem *ABC* -Recurse -Directory

其中* ABC *是您要查找的文件夹名称的一部分。

答案 2 :(得分:1)

这可能有点长,但我想你是想先找出最长的路径(层次结构中最深的)来cd到它,所以也许是这样的:

Set-Location (Get-ChildItem 'c:\CICDTestCICD' -Recurse -Directory |% { 
               [PSCustomObject]@{Path=$_.FullName; 
                                 Depth=($_.fullname.split('\')).count 
                                } 
                                                                     } | 
             sort Depth -Descending | select -first 1
            ).path

这个想法是:

  • 您使用' \'分割完整路径名称作为每个目录的分隔符;
  • 创建PSCustomObject以保存每个
  • 的完整路径和目录深度
  • 按深度排序并选择层次结构中最深的路径
  • 打印完整路径并将目录更改为