【发布时间】:2013-12-23 17:11:43
【问题描述】:
我试图在同一行而不是新行上输出两件事,但我不确定如何执行此操作,或者是否可能。
"Tag # Entered"; "-------------"; echo $tag1;
$OSInfo | Format-Table -Property @{Name="Resolved Tag #";Expression={$_.CSName}} -AutoSize;
我试图让它看起来像下面
Tag # Entered Resolved Tag #
------------- --------------
c63001 C63001
.
.
.
编辑以获得更多帮助:
$OSInfo `
| Format-Table -Property `
@{ Name = "Tag # Entered"; Expression = { $tag1 }; Width = 10 }, `
@{ Name = "Resolved Tag #"; Expression = { $_.CSName } };
.
.
还试图将这两个东西放在同一行,但它不起作用:
$domain = Get-WmiObject win32_computersystem -Computer $tag1 | Format-Table -Property @{Name="Username";Expression={$_.username}} -Autosize;
$username = (Get-WmiObject win32_computersystem -Computer $tag1).UserName.Split("\")[1];
$longname = ((net user $username /domain | Select-String "Full Name") -replace "Full Name","").Trim();
我试图这样做:
$Test `
| Format-Table -AutoSize -Property `
@{ Name = "Tag # Entered"; Expression = { $domain } }, `
@{ Name = "Resolved Tag #"; Expression = { $longname } };
【问题讨论】:
-
您将不得不发布您的第一次编辑的输出以及它的不正确之处,因为当我尝试相同的东西时它工作正常。您对
$username的分配看起来是正确的,尽管我现在不在域计算机上测试net user命令。不过,您对Format-Table的调用看起来是正确的。我假设您已在代码的其他位置为$domain设置了一个值。 -
糟糕,对不起!在那里使用了错误的代码行。我编辑了 OP。我不确定为什么它不能按照我想要的输出方式工作......我可以使用 $Test 作为变量吗?我的意思是......如果我只是“echo $domain”和“echo $longname”......他们输出很好......但在不同的行。我把它们放在上面发布的方式是因为我希望它们在同一行。
-
只是把这个想法扔在那里,如果你只是在同一行打印多个变量但不一定以表格格式打印,你可以使用
Write-Host和-NoNewLine参数和自己处理所有对齐。示例:Write-Host -NoNewline "Tag # Entered: $tag1; "; Write-Host "Resolved Tag #: $($OSInfo.CSName)";当然,对于那个示例,您可以将两个命令组合成一个对Write-Host的调用,同时省略-NoNewline参数,但希望您明白这一点。 -
你拥有它的方式似乎不起作用......我正在尝试弄清楚如何编写它,但只是让你知道。我要做的就是将两个输出放在同一行。
标签: powershell output