Powershell “соединение”

Существует только два хороших: Доктрина и Продвигают . Мы одобряем Доктрину, и она работает хорошо с Symfony. Однако при поиске поддержки БД помимо основных, необходимо будет записать собственный код.

12
задан rookie 5 December 2009 в 03:52
поделиться

6 ответов

Вы всегда можете добавить любые свойства, которые вам нужны, к настраиваемому объекту powershell, у которого есть то, что вам нужно, а затем выгрузить CVS. Взгляните на эту страницу и посмотрите, подходит ли она вам.

0
ответ дан 2 December 2019 в 19:31
поделиться

Powershell V2 необходим для следующего.

$cpu = Get-WmiObject -Class Win32_Processor 
$mb = Get-WmiObject -Class Win32_BaseBoard
$props = @{            
    Name          = $cpu.Name
    Description   = $cpu.Description
    Manufacturer  = $mb.Manufacturer
    Product       = $mb.Product
    }
New-Object PSObject -Property $props | ConvertTo-Csv -NoTypeInformation
12
ответ дан 2 December 2019 в 19:31
поделиться

How about like this?

echo $cpu $mb | Select-Object Name, Description, Manufacturer, Product | ConvertTo-Csv -NoTypeInformation
1
ответ дан 2 December 2019 в 19:31
поделиться

Вы можете начать с любого объекта, а затем добавить свойства из другого:

$cpu | Select-Object Name, Description | 
  add-member noteproperty Manufacturer $mb.Manufacturer -PassThru | 
  add-member noteproperty Product      $mb.Product      -PassThru
0
ответ дан 2 December 2019 в 19:31
поделиться

Для этого есть функция Join-Object на PoshCode , но он похоронен внутри Join-Collection и не экспортируется.

 function Join-Object {
    Param(
       [Parameter(Position=0)]
       $First
    ,
       [Parameter(Position=1,ValueFromPipeline=$true)]
       $Second
    )
    BEGIN {
       [string[]] $p1 = $First | gm -type Properties | select -expand Name
    }
    Process {
       $Output = $First | Select $p1
       foreach($p in $Second | gm -type Properties | Where { $p1 -notcontains $_.Name } | select -expand Name) {
          Add-Member -in $Output -type NoteProperty -name $p -value $Second."$p"
       }
       $Output
    }
 }

После того, как вы это определили, вы можете использовать его так:

Join-Object (Get-WmiObject -Class Win32_Processor) (Get-WmiObject -Class Win32_BaseBoard) | 
Select Name, Description, Manufacturer, Product

Или оставьте свои переменные и сделайте это так:

$cpu = Get-WmiObject -Class Win32_Processor 
$mb = Get-WmiObject -Class Win32_BaseBoard

Join-Object $cpu $mb  | Select Name, Description, Manufacturer, Product
5
ответ дан 2 December 2019 в 19:31
поделиться

Это что ты ищешь? Несколько дольше, чем я ожидал, потому что и $ cpu, и $ mb имеют свойства Name и Manufacturer. Но основная идея - это настраиваемые объекты посредством хеширования.

($cpu | Select-Object Name, Description),($mb | Select-Object Manufacturer, Product) | 
       Select-Object @{name='NameOrManu';expr={$_.Name + $_.Manufacturer}},  
                     @{name='DescrOrProd';expr={$_.Description + $_.Product}} | 
       ConvertTo-Csv -NoTypeInformation
0
ответ дан 2 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: