问题标签 [foreach-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 回答
128 浏览

powershell - 请解释一下这个 PowerShell 脚本中的“%i*g”是什么意思

在 PowerShell 中工作时,我需要将 CIDR 表示法转换为 IP 起始地址和子网掩码表示法。

执行 Google 搜索时,我发现这个 Reddit 发布挑战包含许多执行此任务的晦涩方法。

我发现特别有趣的一个是:

我花了一段时间才发现这-shr$C只是 PowerShell运算符,在变量引用-shr之前没有任何空格。$C

然后我需要搜索以找到它%的别名Foreach-Object

通过查询[ipaddress](4.GB-(4GB-shr$C))我收到的值:

这向我展示了 IPAddress 对象的属性。我需要的结果是IPAddressToString我可以通过使用%| IPAddressToString或以某种方式强制 PowerShell 将对象作为字符串发出来获得的属性。

因此,现在的问题是语法是什么% i*g意思?

什么是ig我们正在执行乘法?

0 投票
1 回答
151 浏览

powershell - 在 ForEach-Object 循环中使用作业收集数据

目标是拥有一个显示计算机 ( $poste) 集合信息的对象。我正在尝试通过作业收集这些数据,以便它运行得更快。但是,我正在努力让它正确。我正在努力:

我在gridview 中最终得到的只是作业的名称(job1、job3 等)。

如果我“正常”地做它,没有作业,它工作正常,但需要一段时间才能完成,因此我的想法是在ForEach-Objectas 作业中运行命令。

例如,如果我这样做,我会得到我想要的结果:

我在处理内部工作的方式中缺少什么ForEach-Object

编辑:感谢下面的答案,这是我使用的最终代码,略有不同:

0 投票
1 回答
81 浏览

arrays - Foreach-object 返回“无法索引到空数组”,但是当我复制循环的每一行时工作正常

我有一个脚本,我一直在构思它,它有点围绕着将排列数组放入哈希表的想法,然后用 foreach-object $_ 索引调用它们以运行命令或输出,编写的冗余代码最少。

我已经尝试过这个想法很多次了,但它似乎不起作用。不知道我是否只是相当愚蠢,或者我在这里是否缺少其他东西。

我可以让其他哈希表和数组使用这种方法,但这给我带来了问题。

我会分解的。

每行都有几个值,但每个值都对应于与其上方和下方相同的项目......想想一个excel电子表格......有点像那样。

在这个数组/哈希表的末尾,我尝试将每一个收集到...

我已经尝试了我能想到的所有排列,带有 at 符号,没有符号,将控制权放入花括号中,使用括号而不是花括号,使用逗号,这似乎不想工作。我还尝试在自己执行循环之前放置一个空的 control=(),似乎没有任何效果......我似乎无法摆脱这个错误“数组边界之外的索引”

...就在我认为我已经让它工作时,我调用了变量并且它是空的。纳达。

所以现在,这似乎有效,但它很糟糕......

我希望用最少的代码来做到这一点,我只是不确定为什么这个不起作用。

顺便说一句,如果我调用 $control[0] 或事后你有什么,所需的最终结果是将这些变量打印到屏幕上......

指数数组的边界之外。x5千次...

0 投票
1 回答
136 浏览

powershell - ForEach-Object $_ 变量未按预期工作

我正在尝试获取 AD 组中每个用户的真实姓名,我已经创建它以获取输出以显示组中每个成员的用户 ID,然后尝试对net user $_ /domain. txt 文件,它给了我错误,就像那里什么都没有。在“你为什么不使用 Get-AD*”的猛烈攻击之前,我知道它就在那里,但我们不能在此处安装该模块。我需要其他人无需安装即可使用的东西。

我尝试了几种方法来解决这个问题,下面的代码是脚本中似乎无法正常工作的部分。我有另一种方法,我尝试将其注释掉,但将其留在那里作为另一个可能的起点。

我得到的是:

让我知道有关使此功能正常工作的任何建议。

0 投票
1 回答
147 浏览

powershell - Powershell - 将 Validateset 参数传递到 ForEach-Object 时遇到问题,提示

所以我是 PowerShell 的新手,我正在尝试让这个功能正常工作。我有 2 个带有 3 个参数的 ValidateSet 数组。这些参数应该更改文件路径并将它们从一台服务器复制到另一台服务器。出于某种原因,我不断收到参数的命令提示符,而不是通过它们。我猜这是 ForEach-Object 的问题,但我不知所措。但是,它适用于 $ArchivePath。我是新人,所以请温柔点... TIA

输出:

0 投票
1 回答
670 浏览

sql-server - 如何替换导致 SQL 语法错误的撇号

预期行为:

  1. 有一个浏览文件目录并获取所有目录详细信息的 PS 脚本(工作)
  2. 将这些详细信息写回 SQL 表(工作)

该脚本正在运行,但失败并出现如下错误:

ForEach-Object:使用“0”参数调用“ExecuteNonQuery”的异常:“'EGIDIO' 附近的语法不正确”

我知道这是由撇号引起的。失败时读取的文件夹名为“D'EGIDIO, SHAH &TOWNSEND”。

问题是我似乎无法弄清楚如何在 PS 脚本中替换该文本,或者从脚本中插入 sql。无论我尝试什么它仍然失败。

0 投票
1 回答
602 浏览

powershell - 以文件名作为变量的 Powershell ForEach 循环

我正在编写一个脚本,它将 .key 文件放在一个文件夹中,并通过 OpenSSL 将它们转换为 .der 格式。我试图将当前文件名保留为变量,因此转换后的证书将保持相同的名称,只是扩展名会改变。以下是我到目前为止尝试过的代码:

0 投票
1 回答
1282 浏览

powershell - 无法使用 foreach-object 并行启动作业

我准备了这个脚本来尝试使用不同的参数多次并行执行相同的函数:

当我运行它时,输出是

但是对块的实际调用(然后对 Web 服务)没有完成。如果我删除了 foreach 对象并将其替换为没有 Start-Job 的正常顺序 foreach 块,则会正确调用 Web 服务。这意味着当我尝试并行运行该块时我的问题。

我究竟做错了什么?

0 投票
1 回答
23 浏览

powershell - 如何找到匹配许多模式的行

我试图从许多文件中的许多模式之一开始查找行(日志解析)。
有没有比以下更好的解决方案:

不幸的是,上面的脚本只搜索一种模式,并且使用Where-Object我没有找到该模式的行号。

0 投票
1 回答
52 浏览

powershell - 将一个对象中的多个元素与不同数组的另一个对象中的多个元素进行比较

说[假设地],我有两个 .CSV 我正在比较尝试看看我当前的哪些成员是原始成员......我写了一个嵌套的 ForEach-Object 将每个对象中的每个 $name 和 $memberNumber 与每个其他对象进行比较. 它工作得很好,但需要很长时间,特别是因为每个 CSV 都有成千上万个对象。我还有其他方法可以解决这个问题吗?

Original_Members.csv

姓名、会员号码

爱丽丝,1234

吉姆, 4567

Current_Members.csv

爱丽丝,4599

吉姆,4567