获取只有文件名和父文件夹名称的相对路径

时间:2015-08-11 18:38:10

标签: powershell

我正在尝试将文件路径放在一起写入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所以只有一个父目录。任何人都可以告诉我出错的地方试图让它发挥作用。

1 个答案:

答案 0 :(得分:4)

简单join文件名及其目录名称:

Get-ChildItem -Filter *.txt -Recurse |
    Select-Object @{l='WAV File';e={Join-Path $_.Directory.Name $_.Name}}