PowerShell:修剪并添加尾随零

时间:2016-12-24 01:27:32

标签: powershell

我有一个字符串,可以是大约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中是否可行?

2 个答案:

答案 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)