我有一个路径,比如D:\repos\my-repo\some\script\path.ps1
,我想获取到仓库名称的路径:D:\repos\my-repo
。完成此任务的最佳方法是什么?以下是我现在的方法:
$fullPath = $MyInvocation.MyCommand.Path # D:\repos\my-repo\some\script\path.ps1
"{0}my-repo" -f [regex]::Split($fullPath, 'my-repo')[0]
这是可行的,但在我看来,它是相当丑陋和低效的。有没有更好的方法来实现这一点?
2条答案
按热度按时间6rqinv9w1#
不要看你目前拥有的东西有什么效率低下,但这里有两种不同的方法可以实现同样的目标。
详细信息:https://regex101.com/r/ZkdlCR/1
标签:https://regex101.com/r/6gk4MF/1
如果你正在寻找面向对象的方法,你也可以将
FileInfo
转换为你的路径,然后获取文件的父目录(.Directory
),从那里你可以使用.Parent
属性来遍历它。tyky79it2#
另一个正则表达式解决方案:
*输出: