我写了一封代码,向某人发送电子邮件。无论何时运行代码,他们都要求在屏幕上打印数据。我使用了Write-Host
cmdlet,如下所示。
Write-Host "server: $serverName `t ipaddress: $ipAddressValue `t process: $processName `t status: $statusString"
数据出现在PowerShell上,所有数据都是直线,因为它应该与最后一个变量$statusstring
分开,状态结果出现在不同的行中,与其他3个变量的顺序不同。
进程:TestTrack服务器状态:正在运行
进程:eventlog status:正在运行
进程:WMSVC状态:已停止
进程:TFSJobAgent状态:正在运行
进程:Dhcp状态:正在运行
处理UI0Detect状态:已停止
我有什么想法可以让状态全部成为一条直线?
答案 0 :(得分:0)
您似乎想要表格输出。为什么不创建对象并使用正确的格式化cmdlet?
$props = [ordered]@{
server = $serverName
ipaddress = $ipAddressValue
process = $processName
status = $statusString.Trim()
}
$o = New-Object -Type PSObject -Property $props
从对象(或对象列表)中,您可以创建如下字符串输出:
$o | Format-Table | Out-String
或HTML输出如下:
$o | ConvertTo-Html
答案 1 :(得分:0)
最佳选择:停止使用Write-Host
。您无法使用该cmdlet将输出控制为显示在一行上。最好在制作自定义PSObject来构建输出,然后将其传递给Format-Table
。