问题标签 [select-object]

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 回答
265 浏览

powershell - Powershell Import-CSV - How to Select-Object & Rename Specific Columns and Export to NewCSV

I am trying to simply rename the column names from an existing CSV and then export the new one.

I do not want all columns. Only specific. All examples I have seen show how to do all, instead of specific columns.

But I am stuck on this error:

Select-Object : Missing an argument for parameter 'Property'. Specify a parameter of type 'System.Object[]' and try again.

0 投票
1 回答
48 浏览

powershell - 脚本完成后有两个变量,但是当我通过管道传输到 SELECT-object 时,只有第一个将数据返回到控制台

我正在尝试使用 WMI 查询多个服务器,但我并不总是可以访问这些服务器。

代码如下。唉,它向控制台返回“访问被拒绝”,但我似乎无法摆脱它。那好吧。

但是,我正在捕获无法连接的服务器,以便我可以告诉其他人查看它们或请求访问。

但是当我运行代码时,它只返回第一个服务器列表;即使 $failed_servers 有值,也不会返回任何内容。如果我告诉两者都通过管道连接到 ogv,则会弹出两个窗口。

为什么两个“$variable|select”都不起作用?如果我删除 $failed_servers 上的选择,它就会显示出来,尽管它只是紧挨着成功的那些。这是好的,但不是很好。

0 投票
0 回答
92 浏览

powershell - Powershell 中选择对象的更高效替代方案

我将一个大 Json 读入 powershell,然后通过减少字段

它运行良好,但速度很慢。

那里有更多的性能替代品吗?

我读了一些关于 linq 的内容,但我不确定这是否能解决我的问题。我还考虑过通过 convertfrom-json 中的 -ashashtable 运算符将内容读取为哈希表,然后通过 .remove 运算符删除不必要的属性,但它需要对数组进行额外处理。

有没有人有一般建议,首选的解决方案是什么?

完整脚本

0 投票
1 回答
545 浏览

powershell - PowerShell Select-Object:将 -Unique 与 First/Last/Skip/Index 结合使用

我只是好奇我是否遗漏了任何文档,或者是否有一种不同/更好的方法可以消除对文档的需求。也许我是唯一一个试图从一组数据Select-Object中选择唯一实例的人。-First X

根据下面的测试,看起来Select-Object-Unique开关和某种类型的限制器(FirstLastSkipIndex等)一起使用会固有地导致在删除重复项之前应用限制器。从概念上讲,这对我来说没有意义,但似乎也没有记录。

我为这个糟糕的例子道歉,但考虑一个包含 20 个项目的数组,每个项目出现两次:

假设有人给了你$array,但你最多只能处理 5 个对象的输入。过滤你得到的东西,你可能会想使用Select-Object. 起初你得到了 5 个对象,但有重复,所以快速思考你只需添加-Unique开关,然后你意识到输出仍然不太正确。

为了得到我期望的结果,我需要Select-Object在返回最后一组对象之前删除重复项。虽然知道这一点并没有错,但对我来说,Select-Object使用它所做的操作顺序并且没有任何文档围绕-Uniquecmdlet.

0 投票
1 回答
75 浏览

powershell - 在数组中查找重复项

我需要首先测试一个 XML 文件的重复元素属性,即具有相同属性值的元素。然后我需要将这些相同的属性与另一个数组进行比较。

给定的 XML

我可以用

构建一个 id 数组。我发现这个帖子有一个来自 Dale Qiao 的答案,看起来它应该可以工作。即

但是当我像这样为我的场景修改它时

我收到一个错误Compare-Object : Cannot bind argument to parameter 'DifferenceObject' because it is null.$a不是空的,它是预期的 id 列表。

所以,首先要解决问题所在。其次,有人可以解释第二行发生了什么,$b=$a | select –unique. 我从未见过像这样通过管道传输的变量赋值的结果。我认为发生的事情并非如此,因为我认为 $b = (Select-Object -InputObject $a –unique) 会是相同的,没有管道,但事实并非如此。$b在那种情况下实际上仍然相同,$a这对我来说毫无意义。Select-Object但话虽如此,我对在管道中使用而不是在管道中使用时表现不同有一些模糊的回忆。当所有人都出去时,这令人沮丧。

编辑:不是Select-ObjectSort-Object就像我在这里问的那样。因此,仍然想知道为什么在使用 XML 时即使使用管道也会失败,并且想知道是否有类似的方法可以使用 .NET 而不是管道来选择唯一项目,因为与其他问题一样,我发现管道经常像糖蜜一样慢,并且对可读性不是特别好,所以总是在寻找其他选项并在它真的是唯一的,或者有时更高效的方法时回退到管道。

EDIT2:所以,我可能已经回答了我自己的问题。在基础上为什么它不能在前面工作,问题是我得到的数组真的是 a [System.Object],如果我真的遇到其他情况,比如[System.Collections.Generic.List[String]],那么Compare-Object可以使用它。如果我使用该链接中的技术进行排序,我可以避免管道Sort-Object,并且还可以转换结果。也就是说,不确定这个

确实提高了可读性。:) 当我使用只有 128 个字符的数组进行测试时,它的性能更高,大约是管道版本所需时间的 25%。管道需要整整 2 秒,但即使是 .NET 方法也需要半秒,这是不可行的,因为这将在初始化时发生很多次。是时候寻找加快速度的方法了。

编辑#3:Doh。我对每个测试进行了 1000 次迭代,以获得更大的数字进行比较。这不太可能在初始化时重复超过 100 次,即使是流水线方法也只需要 0.2 秒。所以我怀疑我可以根据可读性来专门选择。而且我可能只是让 .NET 更频繁地看到它,并附上解释我为什么使用它的评论,意味着我会记住它。:)

编辑#4:Doh。很好地提醒我自己,即使是最微妙的格式也是多么重要,尤其是在累的时候。 $b=$a | select –unique对我来说真的很奇怪。就像$b=$a被管道传输到的结果一样select –unique。但是,添加一些空格,$b = $a | select –unique突然意味着$b等于的结果$a | select –unique。很高兴几天后我在早上看到了这个。:) 争论我是否应该真正使用它,至少在脚本中。