gpt4 book ai didi

powershell - 将许多对象的输出组合成一个 CSV

转载 作者:行者123 更新时间:2023-12-04 00:01:50 25 4
gpt4 key购买 nike

我想获取四个对象的特定输出并将它们放入 CSV 中。

$obj1 = get-wmiobject win32_computersystem | select-object name,manufacturer,model,totalphysicalram
$obj2 = get-wmiobject win32_processor | select-object deviceid,name,maxclockspeed,numberofcores
$obj3 = get-wmiobject win32_bios | select-object serialnumber
$obj4 = get-wmiobject win32_operatingsystem | select-object osarchitecture

我想将所有这些组合到 csv 中的同一输出行中。

如何使用 powershell 执行此操作?我应该构建一个对象数组吗?

最佳答案

我不会因为没有开始这件事而责怪你,一年前我自己也不知道代码该去哪里。试试这个,看看它如何打动你......

$obj1 = get-wmiobject win32_computersystem | select-object name,manufacturer,model,TotalPhysicalMemory
$obj2 = get-wmiobject win32_processor | select-object deviceid,@{l="Proc";e={$_.name}},maxclockspeed,numberofcores
$obj3 = get-wmiobject win32_bios | select-object serialnumber
$obj4 = get-wmiobject win32_operatingsystem | select-object osarchitecture

$Combined = New-Object -Type PSObject
$obj1,$obj2,$obj3,$obj4|%{$CurObj = $_;$_|gm|?{$_.MemberType -match "NoteProperty"}|%{$NewMember = $_.Name;$Combined|Add-Member -MemberType NoteProperty -Name $NewMember -Value $CurObj.$NewMember}}

我修复了 TotalPhysicalMemory(不是 totalphysicalram),并更改了 proc 查询,因此它将 Name 属性重命名为 Proc,这样您就不会有 2 个同名的属性。然后我将所有 4 个对象都放入一个 ForEach 循环中,对于每个对象,我都得到了它的成员并过滤了 NoteProperty 成员(去掉了 Methods 等等)。对于每一个,我都采用了成员的名称,并在我创建的新 PSCustomObject 中创建了一个具有相同名称的属性,并从与该属性关联的原始对象中分配了值。我希望这是有道理的,我发现它有点难以理解,所以我写了一些东西......

编辑: Dur...我没有回答最初的问题,我只是完成了所有的准备工作。输出方式如下:

$Combined|Export-CSV -Path C:\SomeFolder\MachineSpecs.CSV -NoTypeInfo

关于powershell - 将许多对象的输出组合成一个 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com