你可以使用-split来轻松的分割出一个路径的组成部分。其值一定是一个数组。
简单的使用比较运算符来排除你不想要的部分或重命名某些地方,接着使用-join把路径重新合在一起。
这将剔除路径中所有子目录包涵“test”词缀的部分:
$path = 'C:\folder\test\unit1\testing\results\report.txt' $path -split '\\' -notlike '*test*' -join '\'
心得:
这招还是非常实用的,简单易懂,省略了很多代码。
原文地址:Fun with Path Names
本文链接: https://www.pstips.net/fun-with-path-names.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
很好,但是如果只是这一点需求的化,用正则表达式替换,效率更快。PS> $path = ‘C:foldertestunit1testingresultsreport.txt’PS> $path -replace ‘\test.*?\’,’cookie’C:foldercookieunit1cookieresultsreport.txt简单解释两点:1)反斜杠在正则表达式中本身属于特殊字符,需要使用反斜杠转义。2) “.*”匹配任意字符,但是在后面加上问号,为非贪婪匹配。比如,只匹配folder,而不是foldertestunit1testingresults。
漂亮。