Если я правильно понимаю, было бы лучше сделать это с помощью двух команд Get-ChildItem:
$parentDir = "C:\USERS\XXXXX\DESKTOP\TEST"
$outputDir = "C:\USERS\XXXXX\DESKTOP"
Get-ChildItem -Path $parentDir -Force -Directory | ForEach-Object {
$outCsv = Join-Path -Path $outputDir -ChildPath "$($_.Name).csv"
$_ | Get-ChildItem -Directory | Select-Object FullName | Export-Csv -Path $outCsv -NoTypeInformation
}
Используя ваши примеры папок, это будет записывать 3 файла CSV на вашем рабочем столе с именем 1.csv
, 2.csv
и 3.csv
с содержимым:
"FullName"
"D:\Test\1\11"
"D:\Test\1\111"
"D:\Test\1\1111"
"FullName"
"D:\Test\2\22"
"D:\Test\2\222"
"D:\Test\2\2222"
"FullName"
"D:\Test\3\33"
"D:\Test\3\333"
"D:\Test\3\3333"
Для старых версий PowerShell переключатель -Directory
недоступен, и вам следует использовать
Get-ChildItem -Path $parentDir -Force | Where-Object { $_.PsIsContainer } | ForEach-Object { ... }