【问题标题】:Extract Part of a string in powershell在powershell中提取字符串的一部分
【发布时间】:2016-05-11 03:32:38
【问题描述】:

我正在尝试从字符串值中提取 2 条信息。从倒数第 4 个字符到倒数第 2 个字符的第一个;第二个是从倒数第二个字符到最后一个字符。这是我正在使用的代码:

foreach ($item in $List)
{
    $len = $item.Length
    $folder1 = $item.Substring(($len - 2), $len)
    $folder2 = $item.Substring(($len - 4), ($len - 2))

    ..
} 

此代码不断在 Substring 函数上引发错误。错误描述如下:

*Exception calling "Substring" with "2" argument(s): "Index and length must refer to a
      location within the string.
Parameter name: length"
At line:7 char:1
+ $str.Substring($flen - 2, $slen)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ArgumentOutOfRangeException*

如何使用子字符串?我应该传递什么作为正确的参数?

【问题讨论】:

标签: string powershell substring


【解决方案1】:

Substring 采用索引和长度参数。您正在传递一个索引和一个索引参数。如果你想要从倒数第四个字符开始的两个字符,代码是

$item.Substring($len - 5, 2)

请注意,索引是从 0 开始的,而不是从 1 开始的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 2012-04-01
    相关资源
    最近更新 更多