Powershell 子字符串()出错
我对Powershell 子字符串()出错,powershell,Powershell,我对SubString()函数有问题,它有以下错误: 我试着打印出变量的值,但它们看起来不错。在PowerShell中,子字符串的工作方式略有不同 使用现有代码,您可以尝试以下操作: $fileName = "Name of TheFolder_NE_ED" $lengthFileName = $fileName.length $shortenLengthFileName = $lengthFileName - 5 Write-Host("Name of TheFolder_NE_ED").S
SubString()
函数有问题,它有以下错误:
我试着打印出变量的值,但它们看起来不错。在PowerShell中,子字符串的工作方式略有不同 使用现有代码,您可以尝试以下操作:
$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")
说明:
子字符串中的第一个参数应该是字符的起始索引(在本例中为18)。现在,从该字母开始计数,直到字符(必须作为第二个参数传递)。否则,默认情况下它将转到字符串的末尾
因此,如果要传递2个参数并执行此操作,请将其更改为:
$fileName = "Name of TheFolder_NE_ED"
$lengthFileName = $fileName.length
$shortenLengthFileName = $lengthFileName - 5
Write-Host("Name of TheFolder_NE_ED").Substring($shortenLengthFileName)
如需进一步参考,请参阅
希望有帮助。与什么不同?从零开始的索引和长度非常常见(批处理、vbscript、jscript)。错误是使用了超出范围的长度。这里的长度是23。请尝试
.substring(18,20)
。在Java中也尝试一次。计数再次从第一个参数的索引值开始。我不会批评您的解决方案,Ranadip,我不会说Java;-)如果index+length超过了整个字符串长度,任何语言都会出错,请忽略悬垂部分或显示错误数据。@LotPings:是的,这就是我想说的。这将是错误的:)
Write-Host("Name of TheFolder_NE_ED").Substring($shortenLengthFileName,5)