我试图分别导出每个父文件夹的子文件夹名称(作为路径),并在不同位置为每个文件夹(1、2、3)创建一个csv。
树示例如下:
\n
我正在使用的脚本是:
C:\USERS\XXXXX\DESKTOP\TEST
├───1
│ ├───11
│ ├───111
│ └───1111
├───2
│ ├───22
│ ├───222
│ └───2222
└───3
├───33
├───333
└───3333
问题是它将显示Test文件夹的结果,我想导出每个子文件夹的内容并在不同位置创建一个名称为csv的csv,必须对42个文件夹重复该过程,每次更改$ parentDir都很耗时。.
答案 0 :(得分:0)
%{foreach( $a in (Get-ChildItem -Recurse) ){$a.FullName}} | Out-File neu.txt
Get-Content .\neu.txt | Convertto-Csv | Out-file mac.csv
我尝试过这种方式。
答案 1 :(得分:0)
如果我理解正确,那么最好使用两个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 { ... }