0

我试图让所有这些都集中在一条线上,但我尝试的一切都不起作用。我试过 `b 但这不会让你退格到上面的行。我尝试将条件与第一个 Add-Content 内联,但这也不起作用。

Add-Content $txtpath "p: $strPhone x $strXTEN  |  "
if ($strMobile -ne $null) { Add-Content $txtpath "`m: strMobile  |  " }
Add-Content $txtpath "$strFax"
4

3 回答 3

1

认为您想要做的一种方法是使用 -f 格式运算符,如下所示:

$text =  "p: $strPhone x $strXTEN {0}" -f $( if ($strMobile) {"| m: $strMobile"})   
Add-Content $txtpath $text
于 2013-08-19T18:24:26.327 回答
1

您不能使用多个 Add-Content 调用,因为每个调用都会附加一个换行符。很久以前,我记录了一个NoNewline关于 Add-Content 参数的建议。你可以在这里投票。

您可以为此使用 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()
于 2013-08-19T19:46:28.807 回答
0

看起来微软-NoNewLine在 2015 年听过并将参数添加到 Add-Content 中:

https://devblogs.microsoft.com/scripting/the-powershell-5-nonewline-parameter/

于 2020-06-02T10:57:16.290 回答