如何自动将换行符应用于长字符串

时间:2018-01-31 10:09:03

标签: powershell

我正在尝试将base64编码的PDF嵌入到我的PowerShell脚本中。到目前为止,这没有问题。但是,这导致我的脚本中有一个长行。

所以问题是:

如何将非常长的base64字符串转换为包含带反引号的换行符的字符串,而无需手动添加它们?

这一个......

$test = "asdfghjklmasdfghjklmasdfghjklmasdfghjklmasdfghjklm"

应该成为这个...

$test = "asdfghjklm`
asdfghjklm`
asdfghjklm`
asdfghjklm`
asdfghjklm"

1 个答案:

答案 0 :(得分:1)

为什么要反击?将换行符插入base64编码的字符串应该没有任何区别。

PS C:\> $s = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
PS C:\> $b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($s))
PS C:\> $b64
TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4=
PS C:\> $b64w = $b64 -replace '.{10}', "`$&`n"
PS C:\> $b64w
TG9yZW0gaX
BzdW0gZG9s
b3Igc2l0IG
FtZXQsIGNv
bnNlY3RldH
VyIGFkaXBp
c2NpbmcgZW
xpdC4=
PS C:\> [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64w))
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
PS C:\> [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64))
Lorem ipsum dolor sit amet, consectetur adipiscing elit.