繁体   English   中英

get-childitem 在同名文件夹中查找文件

[英]get-childitem find files in folders with same names

我需要检查文件夹中命名为“.policy”的所有文件是否为“azureDeploy.parameters.json”或“azureDeploy.json”

如果我只希望它检查一个文件夹,我只提供完整路径,如下所示:

            $azureDeployFiles = @('azureDeploy.parameters.json', 'azureDeploy.json')        
            (Get-ChildItem -path ..\..\fes\.policy -file -Recurse).name | Should -BeIn $azureDeployFiles

这有效。 但我有多个文件夹,名为'.\\..\\..\\.policy' ,我想检查所有具有该命名的文件夹是否仅包含命名为“azureDeploy.parameters.json”或“azureDeploy”的文件。 json'

您可以在Directory属性上使用Where-Object指定“仅名为 X 的文件夹中的文件”:

$azureDeployFiles = @('azureDeploy.parameters.json', 'azureDeploy.json')
Get-ChildItem -path ..\..\ -Recurse -File | 
  Where Directory -Like "*\.policy" | 
    # example checking file names with -In
    Foreach { $_.Name -In $azureDeployFiles }

继续我的评论。 . .借助管道的一点帮助,我们可以使用Where-Object过滤具有该特定名称的目录:

$azureDeployFiles = @('azureDeploy.parameters.json', 'azureDeploy.json') 
Get-ChildItem -Path '.\MyPath' -Include $azureDeployFiles -Recurse | 
    Where-Object Directory -Like '*\.Policy' 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM