小编lap*_*tah的帖子

带有格式运算符的 Powershell 颜色格式

我在脚本中使用格式运算符,示例如下:

$current = 1
$total   = 1250
$userCN  = "contoso.com/CONTOSO/Users/Adam Smith"

"{0, -35}: {1}" -f "SUCCESS: Updated user $current/$total", $userCN
Run Code Online (Sandbox Code Playgroud)

这 expectedly 显示以下输出:

SUCCESS: Updated user 1/1250 : contoso.com/CONTOSO/Users/Adam Smith

格式运算符用于将目标输出文本保持在原位,当前/总运行数字在 1-99999 之间变化。如果没有格式运算符,我可以像这样突出显示成功行:

Write-Host -BackgroundColor Black -ForegroundColor Green "SUCCESS: Updated user $current/$total: $userCN"

但问题是如何将高亮颜色与格式运算符结合使用?只有-f参数,它不允许颜色参数,因为它Write-Host与最初的不同。

syntax powershell parameter-passing

2
推荐指数
1
解决办法
513
查看次数

Powershell此处字符串换行符不适用于输出文件

我在变量中定义了几百行文本作为此处字符串:

$outputText = @"
Line1
Line2
Line3
And so on...
"@
Run Code Online (Sandbox Code Playgroud)

如果我$outputText在屏幕上打印,则显示正确:

PS > $outputText
Line1
Line2
Line3
And so on...
PS > 
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将其输出到文件中时,总是丢失换行符,并且文件看起来像这样:

Line1Line2Line3And so on...
Run Code Online (Sandbox Code Playgroud)

我尝试遵循:

$outputText | Set-Content file.txt
Add-Content file.txt -Value $outputText
Out-File -InputObject $outputText file.txt
Run Code Online (Sandbox Code Playgroud)

如果我'r'n在每行的末尾添加(带有适当的刻度),则可见输出在每行之间会有额外的换行符,但是输出文件正确显示了每行。但是,在几百行中的每行之后放置回车和换行符并不是一个真正的选择。

我如何能够更轻松地在文件中正确地输出换行符,或者以其他方式定义多行字符串,从而使换行符在没有复杂的转义符等的情况下也能正常工作?

powershell

1
推荐指数
1
解决办法
602
查看次数

标签 统计

powershell ×2

parameter-passing ×1

syntax ×1