我有这个命令
Write-Host "Background " -NoNewline; [System.Windows.Forms.SystemInformation]
::PrimaryMonitorSize.Width; Write-Host "x" -NoNewline;
[System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height
我希望它出来背景1920x1080
我似乎找不到停止命令的方法
[System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width
制作新行。
它的出现
背景1920
X1080
答案 0 :(得分:1)
简单地使用字符串格式化或内联扩展到单个字符串中就不那么复杂了。
"Background {0}x{1}" -f [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width,[System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height
或
Write-Host "Background $([System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width)x$([System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height)"
您获得额外换行符的原因是您的代码示例省略了Width部分上的Write-Host。第一个项目转到Write-Host,然后输出流上的一个项目没有办法省略换行符。简单地纠正这个缺陷可以得到你想要的输出,但这种方法过于复杂。
修复原始样本:
Write-Host "Background " -NoNewline;
Write-Host ([System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width) -NoNewLine;
Write-Host "x" -NoNewline;
Write-Host ([System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height)
答案 1 :(得分:1)
您获得了多行,因为您没有在命令上调用Write-Host -NoNewLine
来输出宽度。您的代码正在运行以下四个命令
Write-Host "Background " -NoNewline
[System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width
Write-Host "x" -NoNewline
[System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height
第二个和第四个命令插入换行符,因为您没有使用Write-Host
告诉他们不要。
Write-Host
not usually the best way输出文字。更好的选择是使用PowerShell的-f
格式化运算符在一个语句中构建输出字符串。
$width = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width
$height = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height
"Background {0}x{1}" -f ($width, $height)