没有来自Substring的结果

时间:2016-07-26 09:25:43

标签: powershell

嘿伙计们,我刚开始使用powershell,现在我遇到了这个问题。我试着检查一个输入路径的最后一个字符是“\”。但是当我运行此代码时,变量$ lastRootPathChar为空。 $ end和$ start变量获取我希望它们拥有的整数,但.Substring似乎什么也没有返回。我究竟做错了什么?

    $RootPath = Read-Host 'Please enter the rootpath: '
    $start = $RootPath.Length-1
    $end = $RootPath.Length
    $lastRootPathChar = $RootPath.Substring($start,$end)
    if($lastRootPathChar -ne "\")
    {
        $RootPath = $RootPath + "\"
    } 

3 个答案:

答案 0 :(得分:1)

"".Substring()的第二个参数是所需子字符串的总长度,而不是结束索引。

$LastChar = $RootPath.Substring($start, 1)

您还可以使用索引运算符[]访问字符串中的 last char(索引-1):

$LastChar = $RootPath[-1] -as [string]

答案 1 :(得分:1)

传递给String.Substring重载的两个参数是开始, 长度 无法启动,结束

$lastRootPathChar = $RootPath.Substring($start,1)

答案 2 :(得分:0)

$ lastRootPathChar = $ RootPath.Substring($ RootPath.length -1)

这将得到削减。因为$ RootPath.length -1是最后一个字符的索引,之后没有字符。