问题标签 [pscustomobject]

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 投票
1 回答
762 浏览

powershell - 将 pscustomobject 转换为 Json 格式

我有示例 Json 格式,我目前正在尝试使用 powershell 进行编码并使用 PScustomobject 将其转换为 Json 格式,但是我遇到了困难,因为 DBdetails 计数将取决于我正在检索的数组。我的逻辑有什么问题?

结果应该看起来像这样,从上面看,它有一个额外的括号。

0 投票
1 回答
27 浏览

powershell - Create table with different output

I want to create a table after code excution with two columns: "Error" and "Line", if there were any errors in code above. But I failed using PSCustomObject (PSObject). It doesn't create table.

Due to too many line in code I do not want to use tey/catch, so how to combine output from? Or even is it possible without using try/catch?..

0 投票
3 回答
72 浏览

powershell - 解析日志文件并将其转换为自定义对象

日志文件包含:

... 更多的行

我想抓住“=====”行之后的 6 行并将其转换为自定义对象。

例如,根据第一行,理想的对象是:

到目前为止,我可以像这样隔离重复出现的“=====”之后的那 6 行:

现在我需要将这些行放在自定义对象中。我真的不知道如何正确处理这个问题,我正在探索做这样的事情:

这样我发现我可以成功地将 PANEL 属性放入自定义对象中,它输出:

但是,我需要对其他线路执行此操作,并且我一直坚持如何处理它,因为ForEach-Object一次只有一条线路。

0 投票
1 回答
207 浏览

powershell - Powershell 中的 Export-Csv 格式 - 意外的列顺序

我正在尝试将对象数组导出到 .csv 文件,我需要做什么才能将所有内容放在带有属性名称标题的右列中。

我尝试通过选择到管道来选择属性

0 投票
2 回答
678 浏览

powershell - 如何将带有附加道具的 PSCustomObject 转换为自定义类

是否有一种巧妙的方法可以将 a 转换PSCustomObject为自定义类作为 PowerShell 5.1 中的函数参数?自定义对象包含其他属性。

我希望能够做这样的事情:

不幸的是Success!,我得到的是:

DuckTypingFtw:无法处理参数“myObj”的参数转换。无法将值“@{PropA=propA; AdditionalProp=additionalProp}”转换为类型“MyClass”。错误:“无法转换”@{PropA=propA; AdditionalProp=additionalProp}”
类型“System.Management.Automation.PSCustomObject”的值以键入“MyClass”。在 C:\temp\tmp.ps1:23 char:15 + DuckTypingFtw $input + ~~~~~~ + CategoryInfo : InvalidData: (:) [DuckTypingFtw], ParameterBindingArgumentTransformationException + FullyQualifiedErrorId : ParameterArgumentTransformationError,DuckTypingFtw

如果我注释掉AdditionalProp,一切正常。

基本上,我想要实现的是从一个函数返回一个对象并将其传递给第二个函数,同时确保第二个函数的参数具有所有预期的属性。

0 投票
1 回答
7687 浏览

json - 在 JSON 正文中添加时间戳

我对powershell很陌生,还不习惯。我正在尝试实时远程控制我的一些服务器。为此,我使用 RestAPI 向我发送 JSON 格式的数据(Powershell 会自动转换为 PSCustomObject)。

问题是我的 JSON/数据 API 中没有字段时间戳,所以我不得不添加它。不幸的是,powershell 中的 JSON 工具似乎有限,我无法直接添加它。我必须创建一个名为 timestamp 的新 PSCustomObject 并将它与来自 API 的数据结合起来。

不幸的是,数据没有被正确解析。我遍历一个字符串,一个字符串数组,一个哈希表。这是最糟糕的。最后我下载了一个我现在正在尝试使用的 JSON.NET 框架......

所以这里是主要的代码部分:

在组合 PSCustomObject 之前,我有:

转换后给了我一个正确的JSON

在组合并添加时间戳后,我有:

转换后给了我:

虽然我想要的只是:

0 投票
1 回答
448 浏览

arrays - 可以从变量创建 PS 自定义对象吗?

我在 sql server 中有一个 100 列的表,我想制作它,所以不是所有的列都需要在文件中传递才能加载。我在一个表中分配了列名,然后比较哈希表中的列以找到匹配的列。然后,我根据要用于从文件中插入数据的数组的匹配来创建代码。问题是,它不喜欢调用一个变量来创建自定义对象。

我将以下内容存储在一个数组中。(最多 100 个,示例如下(注意 sqlcolumn2 被跳过))。

  • sqlcolumn1 =if ([string]::IsNullOrEmpty($obj.P1) -eq $true) {$null} else {"$obj.P1"}
  • sqlcolumn3 =if ([string]::IsNullOrEmpty($obj.P2) -eq $true) {$null} else {"$obj.P2"}
  • sqlcolumn4 =if ([string]::IsNullOrEmpty($obj.P3) -eq $true) {$null} else {"$obj.P3"}
  • sqlcolumn5 =if ([string]::IsNullOrEmpty($obj.P4) -eq $true) {$null} else {"$obj.P4"}

这是数组:

然后我尝试将它添加到最终数组中,我希望在其中循环遍历每一行数据,之后我将从数组中执行插入。即使上面数组中的“字符串”值是正确的,如果它是手动编码的,我也无法让它识别行并运行。

如果我只输入$DataArray,它不喜欢这样,因为它需要我已经在字符串中内置的 = 符号。

是我想要做的甚至可能。

我试图模板化我们接收这些数据的各种不同方式,其中有些人向我们发送了 100 列中的 30 列,其他人或多或少,没有人使用确切的列来减少所有内容的单个脚本。

添加更多代码:

0 投票
1 回答
90 浏览

powershell - 在powershell中,如何在一个数组中测试已经包含一个具有所有相同属性的对象?

我想避免将重复项插入到 powershell 中的数组中。尝试使用-notcontains似乎不适用于PSCUstomObject数组。

这是一个代码示例

0 投票
1 回答
407 浏览

powershell - 在 Powershell 中合并两个 CSV 文件,但某些输出条目因缺少数据而加倍

我目前正在为工作项目设置文件上传。上传的文件应包含具有必要数据和所有变体(例如大小或长度)的所有项目。问题是,我无法将变体数据导出到与一般项目数据相同的文件中,所以我想,因为我已经使用 powershell 脚本处理和上传,我可以在使用 powershell 上传结果之前合并这两个文件作为好。

以下是两个 CSV 文件的标题:

“Artikelnummer”是这两个文件的通用键,因为它包含每个文件仅出现一次的唯一编号,并且变体文件中的大多数(但不是全部)条目也存在于基本提要文件中。

这是合并过程的代码(因为它目前不工作,它仍然包含在它自己的文件中,所以没有其他代码可能会干扰它):

虽然一般的代码很可能会得到很大的改进,但我很高兴它正在做我想做的事,因为它花了很长时间在互联网上搜索以找到一种方法来合并在我的情况下工作的两个文件(尽管我仍然很感激任何提示和建议)。

尽管有一个我似乎根本无法弄清楚的问题,尽管输出是按照我想要的方式处理的,但存在一个问题,即作为变体的每个项目在最终输出中都会出现两次,但其中一个条目缺少大部分数据。这是一个例子:

如您所见,输出文件中的第一个条目(对于具有变体数据的每个项目)是一个精简版本,丢失了大部分原始数据,但仍保留了一些数据。我的第一个猜测是该项目以某种方式列出了两次,但如果我检查使用的原始两个输入文件,我只能在任一文件中找到任何项目的一个条目,任何地方都没有双打。

我还尝试更改代码的第一部分(对于没有变体数据的任何项目)以在某些列中输出固定字符串,虽然这对任何不是变体的项目都有影响,但双精度仍然有空列地方所以我认为它必须与处理具有匹配变体数据的项目的后半部分有关,但我无法理解究竟是什么导致了这个问题。

我在 Windows Server 2016 上使用 Powershell 5.1,我希望有人能告诉我这个问题可能显而易见的答案。提前感谢大家的帮助!

最好的祝福

-凯文

编辑:Hansson0728 提供的解决方案完美运行,对“AllInLeft”类型进行了微调,但它似乎也比我笨重的手动方法快得多。

0 投票
3 回答
1790 浏览

json - 如何使用变量访问powershell PSCustomObject变量(来自json)

我有一个 PSCustomObject ,其中包含这样的子对象列表:

等等

部分对象为 JSON:

我用来排列的键

我可以将键放入数组并对其进行迭代,但我无法通过为键提供变量来访问属性:

结果:密钥 aadAuthenticationInServiceFabricMonitoringEffect

和数据空

但是,这有效:

和这个:

我怎样才能让它与变量一起工作?