获取仅包含文件名和父文件夹名称的相对路径

Mor*_*ing 3 powershell

我正在尝试将文件路径组合在一起以写入 CSV,我需要构建目录并让它仅显示包含父文件夹和文件名的单列。

如果我这样尝试,我只会显示文件名和扩展名。

Get-ChildItem -Filter *.txt -Recurse | Select-Object @{l='WAV File';e={Split-Path -noQualifier ($_.Name) }}
Run Code Online (Sandbox Code Playgroud)

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) }}
Run Code Online (Sandbox Code Playgroud)

WAV 文件
--------
\tapes\12345\wav\test1.txt
\tapes
\12345\wav\test10.txt \tapes\12345\wav\test2.txt
\tapes\12345\wav\test3.txt
\磁带\12345\wav\test4.txt
\磁带
\12345\wav\test5.txt
\磁带\12345\wav\test6.txt \磁带\12345\wav\test7.txt
\磁带\12345\wav\test8.txt
\磁带\12345\wav\test9.txt

但我实际需要它显示的方式wav\test1.txt只是一个父目录。谁能告诉我在尝试让它发挥作用时哪里出错了。

Ans*_*ers 5

只需将文件名与其目录名连接起来即可:

Get-ChildItem -Filter *.txt -Recurse |
    Select-Object @{l='WAV File';e={Join-Path $_.Directory.Name $_.Name}}
Run Code Online (Sandbox Code Playgroud)