PowerShell:将文本拆分为两行(或多行)

PowerShell:将文本拆分为两行(或多行),powershell,text,split,lines,Powershell,Text,Split,Lines,我刚刚完成菜单生成器的工作,但我需要添加警告消息或弹出窗口,如下所示: 与菜单的其他元素一样,警告消息的宽度应为80,内部宽度为78,因为边框为两个。我构建了一个带有一个参数的函数,可以很容易地为将要显示的文本生成消息。问题是,当我输入的文本长度超过78个字符时,就会出现错误。我想把它分成两行或更多行,这取决于我们将获得多少行参数,因为没有人会在每个参数/行上计算到78。我正在寻找一种可能性,将文本分割成两行或多行,以适应78的内部宽度 因为这次我决定用空格分隔符分割文本 $textsplit

我刚刚完成菜单生成器的工作,但我需要添加警告消息或弹出窗口,如下所示:

与菜单的其他元素一样,警告消息的宽度应为80,内部宽度为78,因为边框为两个。我构建了一个带有一个参数的函数,可以很容易地为将要显示的文本生成消息。问题是,当我输入的文本长度超过78个字符时,就会出现错误。我想把它分成两行或更多行,这取决于我们将获得多少行参数,因为没有人会在每个参数/行上计算到78。我正在寻找一种可能性,将文本分割成两行或多行,以适应78的内部宽度

因为这次我决定用空格分隔符分割文本

$textsplit = $text.Split(" ")
然后我决定使用Do-Until循环将$textspilt的每个元素添加到一个数组中

创建一个新变量,该变量将包含少于78个字符的句子单词

我希望你能跟上:

我怎样才能创造这样的条件?嵌套循环?什么样的环?对于你要干到什么时候


如果有什么不清楚的地方,请尽管问。

我对你的问题理解有点模糊。但如果我没弄错的话,你想处理最多78个字符的换行吗?这是不完整的,但应该设置您在正确的方向

$message = "This is a really long message that is longer than 80 characters. It will need to be wrapped onto a second line."

$wordArray = $message.Split(' ')

$output = @()
$currentLine = ""

$wordArray | ForEach-Object {
    if ($currentLine.Length + 1 + $_.Length -le 78) {
        $currentLine = "$currentLine $_"
    }   
    else {
        $output += $currentLine
        $currentLine = $_   
    }
}

## Add remainder to output
$output += $currentLine 

$output

嗨,Kenji,如果你提出确切的问题,我可以帮你。无法完全理解您的要求?如我所想:难以理解:让我解释一下:我需要将整个警告消息分成几行。每一行都有78个符号,我想把它拆分成单词。F.e:在此连接过程中,OnCloud命令必须与诸如Get-CloudDistributionGroup之类的云前缀一起使用。必须拆分为两行:1:在此连接过程中,OnCloud命令必须与Cloud 2:前缀一起使用,例如Get CloudDistributionGroup。你怎么想?是的。我可以从这里开始。非常感谢你。
$message = "This is a really long message that is longer than 80 characters. It will need to be wrapped onto a second line."

$wordArray = $message.Split(' ')

$output = @()
$currentLine = ""

$wordArray | ForEach-Object {
    if ($currentLine.Length + 1 + $_.Length -le 78) {
        $currentLine = "$currentLine $_"
    }   
    else {
        $output += $currentLine
        $currentLine = $_   
    }
}

## Add remainder to output
$output += $currentLine 

$output