Я пытаюсь создать вложенные папки в datalake, используя схему JSON в Powershell.
Хотя это работает, он создает все вложенные папки для всех путей. Я добавил тест json.
my Json =
{
"system": [
{
"filesystem": "ing",
"foldersToCreate": [
{
"path": "path1/",
"foldersToCreate": [
{
"path": "test1/"
},
{
"path": "test2/"
}
]
},
{
"path": "path2/",
"foldersToCreate": [
{
"path": "test2/"
}
]
}
]
}
]
}
Пример.
path1
-test1
-test2
Path2
-test2
Код работает, но также создает test2 в path1. я полагаю, это проблема со свойствами.
function Read-JsonConfig([string]$path)
{
$file = Get-Item $path
$plaintext = $file | Get-Content
$blockComments = '/\*(.*?)\*/'
$psObject = $cleantext | ConvertFrom-Json
return $psObject
}
function create-gen2-folders($folderConfig, $parentPath = '/')
{
$foldersToCreate = $folderConfig.foldersToCreate | Sort-Object { $_.path }
foreach($folderToCreate in $foldersToCreate)
{
$path = build-path $parentPath $folderToCreate.path
if($foldersToCreate.foldersToCreate -ne $null)
{
create-gen2-folders -folderConfig $folderToCreate -parentPath $path
}
}
}