Powershell;从每个路径中删除字符串中的最后一个'/'字符

问题描述:

我正在寻找从包含多个存储路径的字符串中删除最后的'/'字符,什么是最好的方法去关于这一点,我一直在接近,但我仍然无法完全得到我要找的东西,是一个循环真的是唯一的方法吗?Powershell;从每个路径中删除字符串中的最后一个'/'字符

$Paths = /some/path/1/ /some/path/2/ /some/path/3/ 
$Paths = $Paths.Remove($Paths.Length - 1) 
$Index = $Paths.LastIndexOf('/') 
$ID = $Paths.Substring($Index + 1) 

目前我得到这样的错误如下:

Exception calling "Remove" with "1" argument(s): "Collection was of a fixed size." 

的$期望的最终版本路径将

/some/path/1 /some/path/2 /some/path/3 

任何帮助将不胜感激,我想我可能存在流程问题以及编码问题...

使用.TrimEnd()方法。

PS > $Paths = '/some/path/1/','/some/path/2/','/some/path/3/' 
PS > $Paths 
/some/path/1/ 
/some/path/2/ 
/some/path/3/ 
PS > $Paths = $Paths.TrimEnd('/') 
PS > $Paths 
/some/path/1 
/some/path/2 
/some/path/3 

另一种方法,使用的foreach(或%),并删除最后一个字符用子功能:

$Paths = "/some/path/1/", "/some/path/2/", "/some/path/3/" 
$Paths | %{$_.Substring(0, $_.length - 1) } 
+0

但如果你有一个像'“一些/路径”'出于某种原因的路径然后切断''h'',路径变得不正确?你应该检查,如果最后一个字符是斜杠,或者使用@tommymaynard的解决方案 –

+0

尽管这段代码是受欢迎的,并且可以提供一些帮助,但它会[如果包含解释, .stackexchange.com/q/114762)*如何解决问题。没有这些,你的答案就没有什么教育价值了 - 记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –