仅凭文件名和父文件夹名称获取相对路径

3
我正在尝试组合一个文件路径以便写入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文件
--------
\tapes\12345\wav\test1.txt
\tapes\12345\wav\test10.txt
\tapes\12345\wav\test2.txt
\tapes\12345\wav\test3.txt
\tapes\12345\wav\test4.txt
\tapes\12345\wav\test5.txt
\tapes\12345\wav\test6.txt
\tapes\12345\wav\test7.txt
\tapes\12345\wav\test8.txt
\tapes\12345\wav\test9.txt

但实际上我需要显示的是wav\test1.txt,只有一个父目录。请问我在尝试实现这个的过程中哪里出错了。

1个回答

5

只需将文件名与其所在目录的名称拼接即可:加入

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

您真是个明星,我已经看了好几个小时了......非常感谢。 - Moralizing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接