2013-12-23 3 views
0

Я пытаюсь вывести две вещи в одной строке, а не в новую строку, и я не уверен, как это сделать или если это возможно.Вывод два раза в одной строке

"Tag # Entered"; "-------------"; echo $tag1; 

$OSInfo | Format-Table -Property @{Name="Resolved Tag #";Expression={$_.CSName}} -AutoSize; 

Я пытаюсь заставить его выглядеть ниже

Tag # Entered  Resolved Tag # 
-------------  -------------- 
c63001    C63001 

.

.

.

EDIT для получения дополнительной помощи:

$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 } }; 
+0

Вам нужно будет опубликовать выходные данные вашего первого редактирования и что не так, потому что, когда я пробовал то же самое, он работал нормально. Ваше назначение '$ username' выглядит правильно, хотя я сейчас не на компьютере с доменом, чтобы проверить команду« net user ». Тем не менее, ваш вызов 'Format-Table' выглядит корректно. Я предполагаю, что вы установили значение для '$ domain' в другом месте вашего кода. – BACON

+0

Woops извините! там используется неправильная строка кода. Я редактировал OP. Я не уверен, почему это не работает так, как я хочу его вывести ... Я в порядке с использованием $ Test в качестве переменной? Я имею в виду ... если я просто «echo $ domain» и «echo $ longname» .. они выдают отлично ... но находятся на разных строках. Я помещал их выше, потому что я хочу, чтобы они были на одной линии. – Aaron

+1

Просто, чтобы бросить идею там, если все, что вам нужно, это печать нескольких переменных в одной строке, но не обязательно в табличном формате, вы можете использовать 'Write-Host' с параметром' -NoNewLine' и обрабатывать все выравнивание сам. Пример: «Write-Host -NoNewline» Tag # Введено: $ tag1; "; Write-Host «Resolved Tag #: $ ($ OSInfo.CSName)»; «Конечно, для этого примера вы можете объединить обе команды в один вызов« Write-Host »с параметром' -NoNewline', но не надеюсь, вы получите эту идею. – BACON

ответ

0

Это то, что я хотел:

$CompInfo ` 
    | Format-Table -AutoSize -Property ` 
     @{ Name = "Domain\user"; Expression = { $CompInfo.username } }, ` 
     @{ Name = "Full Name"; Expression = { $fullname } }; 

Причина это не работа, потому что я использую $ OSINFO который является классом Win32_OperatingSystem.

$OSInfo = get-wmiobject -class win32_operatingsystem -computername $tag1; 
$CompInfo = get-wmiobject -class win32_computersystem -Computer $tag1; 

Домен я пытался вывести вытягивается с классом Win32_ComputerSystem, и я пытался сделать это под Win32_OperatingSystem.

2

Это должно дать вам требуемый выход (переформатирован пробельные для удобства чтения):

$OSInfo ` 
    | Format-Table -AutoSize -Property ` 
     @{ Name = "Tag # Entered"; Expression = { $tag1 } }, ` 
     @{ Name = "Resolved Tag #"; Expression = { $_.CSName } }; 

Обратите внимание, что если $OSInfo кон tains multiple items, значение первого столбца будет одинаковым для всех из них ("c63001").

+0

Работает! Есть ли способ добавить больше пространства между ними или это невозможно? – Aaron

+0

Помните, что вывод состоит из объектов. Когда у вас есть объекты, фактическое появление того, как PowerShell выводит объекты, имеет второстепенное значение (все данные там, расстояние действительно не важно). –

+1

@Aaron Вы можете добавить элемент 'Width' в' Hashtable', определяющий каждый столбец (например, '@ {Name =" Tag # Entered "; Expression = {$ tag1}; Width = 10}'). См. Параметр '-Property' в [' Format-Table'] (http://technet.microsoft.com/library/hh849892.aspx). – BACON

Смежные вопросы