substring在我试图将字符串限制为10个字符而长度不是10个或更多字符时会发生错误。我知道我可以测试长度,但我想知道是否有一个单一的cmdlet将做我需要的。
PS C:\> "12345".substring(0,5)
12345
PS C:\> "12345".substring(0,10)
Exception calling "Substring" with "2" argument(s): "Index and length must refer to a location within the string.
Parameter name: length"
At line:1 char:18
+ "12345".substring( <<<< 0,10)
6条答案
按热度按时间os8fio9y1#
您是否确实需要cmdlet?我想知道你为什么不喜欢变长。如果这是剧本的一部分,那么它看起来很好。
c3frrgcw2#
使用substring函数有它的局限性,需要您首先捕获字符串的长度。假设这确实有效,你可以在没有这个限制的情况下做。
下面将返回字符串的前5个字符
这将适用于短于预期长度的字符串
qmb5sa223#
您可以加载和使用其他库,并使用它们的字符串函数,例如,visual basic字符串函数可以很好地完成您要做的事情
每会话调用一次
>[void][reflection.assembly]::LoadWithPartialName("microsoft.visualbasic")
然后使用各种vb字符串函数
或
v64noz0r4#
前面的答案不符合我的目的(无意冒犯!)所以我采用了上面的Denomales建议,并将其转化为一个函数,我想我会分享:
示例用法:
bz4sfanl5#
感谢Dmitry的回答,我把它变成了一个函数,使它基于1而不是基于0。
hxzsmxv26#
先垫垫垫怎么样。