2016-07-26 31 views
0

嘿傢伙我剛剛開始與PowerShell,現在我有這個問題。我試圖檢查輸入路徑的最後一個字符是否是「\」。但是當我運行這個代碼時,變量$ lastRootPathChar是空的。 $ end和$ start變量獲得我希望它們具有的整數,但.Substring似乎不會返回任何結果。我究竟做錯了什麼?沒有來自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 + "\" 
    } 
+1

請將*代碼*粘貼到代碼 –

+0

的問題中,而不是*屏幕截圖*以便將來參考,將代碼粘貼到問題中,而不是代碼的屏幕截圖! – Jamiec

回答

1

傳遞的String.Substring是超載的兩個參數啓動和長度未啓動和結束

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

偉大的思想家一樣思考;) –

+0

也謝謝你。是否需要分號? – L4c0573

+0

@ user5883013 - 不,編寫c#的習慣。 – Jamiec

1

的第二個參數"".Substring()是期望的子串的總長度,而不是結束索引。

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

你也可以使用索引操作[]訪問字符串中的最後char(指數-1):

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

看起來像今天一樣思考! – Jamiec

+0

好的,這個作品謝謝你! – L4c0573

0

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

這將讓斜線出。由於$ RootPath.length -1是最後一個字符的索引,並且之後沒有任何字符。