Я могу рекурсивно искать каталог, используя Get-ChildItem -Recurse. Но не получая результат, как ожидалось. Пробовал -Глубина тоже. Но не повезло.
Структура папок выглядит следующим образом:
C:\Users\Documents\Azure\repo\Templates\directory*
directory1-uat --> childdir1 --> childdir2 --> a.parameters.json
directory2-dev --> childdir1 --> childdir2 --> b.parameters.json
directory3-nonprod --> childdir1 --> childdir2 --> c.parameters.json
directory4-test --> childdir1 --> childdir2 --> d.parameters.json
directory5-uat --> дочерний каталог1 --> дочерний каталог2 --> e.parameters.json
Я пробовал следующее:
$repo = 'C:\Users\Documents\Azure'
$subDirs = Get-ChildItem -Path "$repo\Templates\*\" -Depth 0 -Directory | Where-Object fullname -notlike "*_Templates*"
$subDirs
ForEach ($subDir in $subDirs) {
$subDir
$envTag = $subDir.Name.split('-')[1]
$envTag
$subParamFiles = Get-ChildItem -Path $subDir.PSParentPath -Recurse -File -Include "*parameters.json"
$subParamFiles
}
Выход:
d----- 02-Jan-20 8:48 PM directory1-uat
uat
-a---- 02-Jan-20 8:48 PM a.parameters.json
-a---- 02-Jan-20 8:48 PM b.parameters.json
-a---- 02-Jan-20 8:48 PM c.parameters.json
-a---- 02-Jan-20 8:48 PM d.parameters.json
-a---- 02-Jan-20 8:48 PM e.parameters.json
d----- 02-Jan-20 8:48 PM directory2-dev
dev
-a---- 02-Jan-20 8:48 PM a.parameters.json
-a---- 02-Jan-20 8:48 PM b.parameters.json
-a---- 02-Jan-20 8:48 PM c.parameters.json
-a---- 02-Jan-20 8:48 PM d.parameters.json
-a---- 02-Jan-20 8:48 PM e.parameters.json
d----- 02-Jan-20 8:48 PM directory3-nonprod
nonprod
-a---- 02-Jan-20 8:48 PM a.parameters.json
-a---- 02-Jan-20 8:48 PM b.parameters.json
-a---- 02-Jan-20 8:48 PM c.parameters.json
-a---- 02-Jan-20 8:48 PM d.parameters.json
-a---- 02-Jan-20 8:48 PM e.parameters.json
d----- 02-Jan-20 8:48 PM directory4-test
test
-a---- 02-Jan-20 8:48 PM a.parameters.json
-a---- 02-Jan-20 8:48 PM b.parameters.json
-a---- 02-Jan-20 8:48 PM c.parameters.json
-a---- 02-Jan-20 8:48 PM d.parameters.json
-a---- 02-Jan-20 8:48 PM e.parameters.json
d----- 02-Jan-20 8:48 PM directory5-uat
uat
-a---- 02-Jan-20 8:48 PM a.parameters.json
-a---- 02-Jan-20 8:48 PM b.parameters.json
-a---- 02-Jan-20 8:48 PM c.parameters.json
-a---- 02-Jan-20 8:48 PM d.parameters.json
-a---- 02-Jan-20 8:48 PM e.parameters.json
Ожидаемый результат:
d----- 02-Jan-20 8:48 PM directory1-uat
uat
-a---- 02-Jan-20 8:48 PM a.parameters.json
d----- 02-Jan-20 8:48 PM directory2-dev
dev
-a---- 02-Jan-20 8:48 PM b.parameters.json
d----- 02-Jan-20 8:48 PM directory3-nonprod
nonprod
-a---- 02-Jan-20 8:48 PM c.parameters.json
d----- 02-Jan-20 8:48 PM directory4-test
test
-a---- 02-Jan-20 8:48 PM d.parameters.json
d----- 02-Jan-20 8:48 PM directory5-uat
uat
-a---- 02-Jan-20 8:48 PM e.parameters.json
$subDir.PSParentPath
. я подозреваю, что вы получаете путь parent ... а затем он получает все файлы json во всем дереве. что произойдет, если вы просто используете фактический путь вместо пути parent? - person Lee_Dailey   schedule 04.01.2020$subDir
- в первом случае этоdirectory1-uat
. затем вы получаете список файлов родительского каталога$subDir
. вам нужны файлы в$subDir
, а не во всем родительском дереве. попробуйте заменить$subDir.PSParentPath
только на$subDir
. - person Lee_Dailey   schedule 04.01.2020