我有一个字符串,可以是大约5个字符到任何给定的大小。我想要做的是获取前10个字符,然后添加5个尾随零并将结果保存到另一个变量。但是我需要结束字符串有15个字符。因此,如果只有9个字符,则应该有6个尾随零。如果只有8个字符,那么7个尾随零等等。
JOE.BLOGS - > JOE.BLOGS000000
ANDREW.SMITH - > ANDREW.SMI00000
JIM - > JIM000000000000
我遇到了特别困难,因为如果字符串比我指定的短,SubString会给我一个错误:
$shadowSAM = $shadowUPN.substring(0,10) + '00000'
另外我不确定如何添加正确数量的尾随零,具体取决于字符串的实际长度(switch / then / else of switch语句会是一个令人畏缩的事情)。
这在PowerShell中是否可行?
答案 0 :(得分:1)
试试这个
(($str -split '' | select -first 10) -join '').PadRight(15, "0")
或者
($str[0..9] -join '').PadRight(15, "0")
或者
$str.substring(0, [Math]::Min($str.Length, 10)).PadRight(15, "0")
或者
($str -replace '(.{10}).+','$1').PadRight(15, "0")
答案 1 :(得分:1)
使用“0”* 15替换padleft的解决方案
(($str2 -replace '(.{10}).+','$1') + ("0" * 15)).Substring(0, 15)