Экспортируйте имя подпапки как путь и создайте CSV для каждой родительской подпапки в другом месте - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь экспортировать имена подпапок (как путь) каждой родительской папки по отдельности и создать csv для каждой (1,2,3) в другом месте.

Пример дерева выглядит вот так:

C:\USERS\XXXXX\DESKTOP\TEST
├───1
│   ├───11
│   ├───111
│   └───1111
├───2
│   ├───22
│   ├───222
│   └───2222
└───3
    ├───33
    ├───333
    └───3333

Сценарий, который я использую:

$parentDir = "C:\Users\XXXXX\Desktop\Test";
Get-ChildItem -Recurse -Force -Depth 2 -Attribute Directory -Path $parentDir | Select-Object -Property FullName | Export-Csv Test.csv

Проблема в том, что он покажет результат для тестовой папки, я хочу экспортировать содержимое каждой подпапки -folder и создать csv с их именем в другом месте, процесс необходимо повторить для 42 папок, и изменение $ parentDir для каждой из них занимает много времени ..

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Если я правильно понимаю, было бы лучше сделать это с помощью двух команд 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 { ... }
0 голосов
/ 28 мая 2020
%{foreach( $a in (Get-ChildItem -Recurse) ){$a.FullName}} | Out-File neu.txt
Get-Content .\neu.txt | Convertto-Csv | Out-file mac.csv

Я так пробовал.

...