2017-04-26 33 views
2
$fileName = "Name of TheFolder_NE_ED" 
$lengthFileName = $fileName.length 
$shortenLengthFileName = $lengthFileName - 5 
Write-Host("Name of TheFolder_NE_ED").Substring($shortenLengthFileName,$lengthFileName) 
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") 

我有SubString()功能的問題,有錯誤:錯誤與子串()

error message

我想打印出我的變量的值,但他們似乎罰款。

回答

2

在PowerShell中,子串的工作方式稍有不同。

與您現有的代碼,你可以試試這個:

$fileName = "Name of TheFolder_NE_ED" 
$lengthFileName = $fileName.length 
$shortenLengthFileName = $lengthFileName - 5 
Write-Host("Name of TheFolder_NE_ED").Substring($shortenLengthFileName) 

說明:

內字符串的第一個參數是字符的起始指數(在這種情況下,18)。現在從該字母開始計數直到字符(必須作爲第二個參數傳遞)。否則它會默認轉到字符串的末尾。

所以,如果你想傳遞兩個參數,並做到這一點,然後將其更改爲:

Write-Host("Name of TheFolder_NE_ED").Substring($shortenLengthFileName,5) 

有關進一步的參考,請按照Substring Use

希望它能幫助。

+1

不同於什麼?基於零的索引和長度非常常見(批量,vbscript,jscript)。這個錯誤是使用超出界限的長度。 – LotPings

+0

這裏的長度是23.你可以試試'.substring(18,20)'..並且在Java中也嘗試一次。 –

+0

計數再次從第一個參數的索引值開始。 –