问题标签 [psobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
591 浏览

powershell - PowerShell PSObject 在转换为 JSON 对象之前更改字段名称

我在 PowerShell 中有一个项目,我使用“Add-Type”创建了一个自定义类型。我想使用类,但我仅限于必须使用的系统上的 PowerShell 版本。

该对象被转换为 JSON 并使用 REST API 发送出去。为了避免一些命名问题,我最终在字段名称前加上了“”。我想在将它们发送到 API 之前将其删除。我认为进行重命名会很简单,但后来我意识到,如果我通过删除带有“”的任何内容来重命名 JSON 对象中的所有内容,我用于重命名的方法可能会导致问题

这是自定义类型:

仅使用字符串 REPLACE 方法我会得到这个:

而不是这个:

这是我正在使用的方法:

我检查了 PSObject 提供的方法,但我只是不确定语法。如果可能的话,我想在转换为 JSON 之前更改现有对象,而不必创建 CLONE 或遍历 JSON 值。

0 投票
1 回答
1175 浏览

powershell - 将 DISM 输出转换为 PS 对象

您能否指出正确的方向,如何将此 DISM 输出转换为 Powershell 对象,以便我可以在脚本中使用它们来过滤结果? dism /Get-WimInfo /WimFile:"E:\_Source\OSD\x64\Windows 10 Enterprise\1607\Media\WIM\REFW10-X64-1607_04-12-2017.wim" /index:1

我得到的输出是:

我试过| Out-String -Stream | Select-String "Version " 但没有运气..

0 投票
1 回答
2109 浏览

json - 将 JSON 批量导入 SQL Server

我需要将数据批量导入 SQL Server 数据库。

我的 JSON 看起来像这样:

不幸的是,我不断收到此错误:

无法将参数“rows”,值为:“System.Object[]”,为“WriteToServer”键入“System.Data.DataRow[]”:“无法转换”@{id=35; created_at=2016-01-12T11:40:36+01:00; 客户id=34;名称=.com;注意=COMXXXX-; 更新时间=2016-07-15T12:13:54+02:00;存档=假;customer_name=PMName}”类型“Selected.System.Management.Automation.PSCustomObject”的值以键入“System.Data.DataRow”。在 P:\PsideSync\sync.ps1:261 char:3 + $bulkCopy.WriteToServer($dt2) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + CategoryInfo : NotSpecified: (:) [], MethodException + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

将大量 JSON 数据导入 SQL Server 的正确方法是什么?

TIA

0 投票
0 回答
235 浏览

winforms - 绑定到 PSObject 列表 DisplayMember 的列表框不起作用

我有一个表格,listbox上面有一个。在这listbox我想把PSObjects有这些成员:姓名,位置,ID。

我创建了一个变量:$list它包含所有PSObjects并且我想绑定$list到,$listbox以便随时$list修改$listbox自动更新。

我可以绑定$list到,$listbox但它不能正确显示。我希望只有名称成员可见。问题是,无论我是否设置DisplayMember属性,$list仍然显示如下:

我希望它看起来像这样:

这是我正在使用的相关代码:

有没有人知道为什么DisplayMember我绑定列表时似乎忽略了该属性以及如何将显示转换为所需的格式?

注意:如果PSObjects一次从列表中添加一个,则它会正确显示,但这在我的应用程序中会变得笨拙。

0 投票
2 回答
345 浏览

c# - 使用 c# 的 PowerShell 进程名称

我是个问题。

我使用 c# 通过 powershell 脚本获取进程名称。但是,我没有得到价值,因为进程名称包含空格。

如何使用 c# 在 powershell 中获取包含空格的值?

0 投票
1 回答
133 浏览

wpf - 将 PSObject 添加到列表框,但仅显示其中一个属性

我想将一个包含多个属性(确切地说是三个)的 PSObject 添加到列表框中,但只显示其中一个属性。当我将整个 PSobject 添加到列表框时,它会显示所有属性,如下所示:

假设 property1 是我希望用户看到的属性,那么列表框中的相同对象行应该如下所示:

解决此问题的一种方法是将 PSObject 的特定属性添加到列表框中,但我希望每一行代表一个唯一的对象。因此,即使某些 PSObject 彼此共享它们的 property1 值,我仍然能够准确地知道在列表框中选择了哪些 PSObject。如果我只向列表框添加一个属性,我不知道这一点。

例如,可能有两个对象的 property1 值为“Something”,但其中一个将 property2 设置为“Something Else”,另一个将其设置为“A Third Something”。列表框应该以相同的方式显示两个对象,即:

但是列表框应该知道所选项目是否将 property2 设置为“其他东西”或“第三东西”,即使用户无法分辨。

0 投票
0 回答
99 浏览

c# - C# PSObject 成员.值

我试图在我的 GUI 中获得 PSObject “低估”,但我不知道如何将它放入变量中。

代码如下所示:

那个outputItem.Members["Progress"].Value应该给我一个低于价值的数字。

图片:

在此处输入图像描述

0 投票
2 回答
360 浏览

arrays - 通过引用传递 Powershell 数组未按预期工作

引用数组

工作正常!

在 PowerShell 中通过引用传递数组的正常方法似乎工作正常:

输出:

问题

添加对象

当引用数组是非静态的 PSObjects 容器并且我正在尝试添加新记录时,就会出现问题。修改现有记录似乎没问题!

输出

和函数似乎工作正常Swap-ApplesSwap-Oranges该程序在最后一段崩溃了,试图给 A 和 B 更多的果实!否则这通常会在本地范围内工作。我觉得这由于引用传递而分崩离析。

在这个程序结束时我将如何解决这个问题?

0 投票
1 回答
186 浏览

powershell - 为管道重用自定义对象时出现意外结果

不久前,我更改了我的Join-Objectcmdlet,这似乎导致了一个在我的任何测试中都没有发现的错误。
更改的目标主要是代码最小化,并尝试通过准备自定义 PSObject 并在管道中重用它来提高性能。
由于Join-Objectcmdlet 相当复杂,我创建了一个简化的 cmdlet 来显示具体问题:
(PowerShell 版本是5.1.16299.248:)

直接测试输出完全符合我的预期:

假设我是否将结果分配给变量(例如$a)并不重要,但确实如此:

所以,除了分享这个经验,我想知道这是编程缺陷还是 PowerShell 错误/怪癖?

0 投票
1 回答
783 浏览

powershell - Unable to pass PSObject as an argument to to Start-Process

I had a requirement to read an input file, which is an xml (as below)

My main powershell script parses the xml, and creates an object with input parameters in a foreach loop for each Child and calls another powershell script with the argument as that object created from each child item. This is necessary as to run scripts in parallel in different consoles.

My problem is, this executes fine and opens two different consoles for 2 child nodes, but the $inputobj isn't passing completely. It gets truncated. However, if I pass each individual parameter as a string value, it accepts all.

I want to know, what is the reason that an object isn't properly passing.

In the new console that opens, the output will be only the first item. for eg., my ls.ps1 has a statement

it outputs, just this.

@{Server=Server1;

The object structure is compromised too. I believe, its being sent as a string instead of an object.

Please let me know if anybody had more knowledge on this.