我正在尝试将文件路径放在一起写入CSV,我需要构建目录并让它只显示一个包含父文件夹和文件名的列。
如果我这样尝试,我只会显示文件名和扩展名。
Get-ChildItem -Filter *.txt -Recurse | Select-Object @{l='WAV File';e={Split-Path -noQualifier ($_.Name) }}
WAV文件
--------
test1.txt的
test10.txt
的test2.txt
test3.txt
有test4.txt
入test5.txt
了test6.txt
包含test7.txt
test8.txt
test9.txt
如果我将$_.Name
交换为$_.FullName
,那么我将获取所有父目录。
Get-ChildItem -Filter *.txt -Recurse | Select-Object @{l='WAV File';e={Split-Path -noQualifier ($_.FullName) }}
WAV文件
--------
\磁带\ 12345 \ WAV \ test1.txt的
\磁带\ 12345 \ WAV \ test10.txt
\磁带\ 12345 \ WAV \的test2.txt
\磁带\ 12345 \ WAV \ test3.txt
\磁带\ 12345 \ WAV \有test4.txt
\磁带\ 12345 \ WAV \ test5.txt吗
\磁带\ 12345 \ WAV \了test6.txt
\磁带\ 12345 \ WAV \
包含test7.txt
\磁带\ 12345 \ WAV \ test8.txt
\ tapes \ 12345 \ wav \ test9.txt
但我实际需要它显示的方式是wav\test1.txt
所以只有一个父目录。任何人都可以告诉我出错的地方试图让它发挥作用。
答案 0 :(得分:4)
简单join文件名及其目录名称:
Get-ChildItem -Filter *.txt -Recurse |
Select-Object @{l='WAV File';e={Join-Path $_.Directory.Name $_.Name}}