【问题标题】:get relative path with just file name and name of the parent folder获取仅包含文件名和父文件夹名称的相对路径
【发布时间】:2015-11-04 03:15:29
【问题描述】:

我正在尝试将文件路径放在一起以写入 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
\磁带\12345\wav\test9.txt

但我实际需要它显示的方式是wav\test1.txt,所以只是一个父目录。谁能告诉我试图让它工作的地方出错了。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    只需join文件名加上其目录名即可:

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

    【讨论】:

    • 你先生是个明星,我已经看了好几个小时了.....真的很感激。
    猜你喜欢
    • 2011-12-22
    • 2016-12-29
    • 1970-01-01
    • 2011-04-13
    • 2011-01-25
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多