我正试图让所有这一切都在一条线上,但我尝试的一切都行不通。我试过`b但是这并没有让你回到上面的那一行。我尝试将条件与第一个Add-Content内联,但这也不起作用。
Add-Content $txtpath "p: $strPhone x $strXTEN | "
if ($strMobile -ne $null) { Add-Content $txtpath "`m: strMobile | " }
Add-Content $txtpath "$strFax"
答案 0 :(得分:1)
我想做的事情的一种方法是使用-f格式运算符,如下所示:
$text = "p: $strPhone x $strXTEN {0}" -f $( if ($strMobile) {"| m: $strMobile"})
Add-Content $txtpath $text
答案 1 :(得分:1)
您不能使用多个Add-Content调用,因为每个调用都会追加换行符。很久以前我在Add-Content上记录了NoNewline
参数的建议。您可以为其投票here。
您可以使用StringBuilder,然后通过Add-Content或Set-Content输出其内容:
$sb = new system.text.stringbuilder
[void]$sb.Append("p: $strPhone x $strXTEN | ")
if ($strMobile -ne $null) { [void]$sb.Append("`m: strMobile | ") }
[void]$sb.Append($strFax)
Add-Content $txtPath $sb.ToString()
答案 2 :(得分:0)
Microsoft似乎在2015年收听了-NoNewLine
参数并将其添加到“添加内容”中:
https://devblogs.microsoft.com/scripting/the-powershell-5-nonewline-parameter/