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

powershell - SearchUnifiedAuditLog 的 ForEach-Object 更改结果

我有一个 powershell 脚本来检索来宾用户的最新登录信息。它工作正常。(基于https://gallery.technet.microsoft.com/office/Get-Guest-User-Last-Login-39f8237e

输出如预期:

find_last_login_date 中额外的 Write-Output 仅用于调试。

现在,当我将其更改为 ForEach-Object 时,它会做一些奇怪的事情。可能对专家来说是有意义的,但对我来说不是:-)

代替

输出变为

所以它似乎触发脚本只查找最后一次登录日期,并且选择前 1 失败,等等。

知道我做错了什么吗?起初我认为这是关于“嵌套”的 ForEach-Object 但即使使用代码在函数内部进行搜索,它也会继续这样做。默认情况下是否并行执行操作,我是否需要等待所有任务完成?有什么不一样的?

我正在查看 ForEach-Object 以并行化上述脚本,因为在大型租户上运行需要很长时间。

0 投票
2 回答
173 浏览

arrays - 在 Powershell 中,为什么 foreach-object 循环不允许您从数组中检索单个值?

请注意以下输出。$Names 是一个包含两个值的数组。$Machinename 是一个包含两个值的数组。

它们在数组中的位置值是在 foreach 循环之外准确检索的。当在 foreach 循环中获取数组中第一个位置请求的值时,即 $Names[0] 忽略 [0] 的位置调用.....我需要能够自行检索该值.... . 最终我将需要对每个值进行交互以输入命令...

示例脚本:

0 投票
0 回答
40 浏览

powershell - 使该脚本并行运行以加快执行速度的最佳方法是什么?

此代码用于从嵌套组中获取所有用户。我希望它并行运行以获得更快的运行时间。最好的方法是什么?我试图在我的最后一个函数上对我的 foreach 进行并行以运行整个代码,但我无法在并行内调用该函数。提前感谢任何已经遇到这种逻辑的人。

++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 这就是我想要进行并行处理以加快执行速度

0 投票
1 回答
46 浏览

powershell - Powershell通过获取批处理文件的内容在foreach-object中设置变量

再会,

请问有人可以帮我在powershell中从批处理文件中过滤一些记录后设置一些变量吗?

我的批处理文件(config.bat)如下所示:

我的 Powershell 代码类似于下面的代码,尽管我不确定如何设置变量,即(将值“WORD”和“AJ34”放入 $doc 和 $user



由于我的配置文件更改并具有多个值,我只对后面的值感兴趣 = sign for set DOCTYPE= & set USR= ie WORD and AJ34 in this example

在另一天,配置值会改变,这就是为什么我需要再次将它们读入我的 powershell 变量。对于任何错误等,请提前道歉

谢谢

0 投票
2 回答
99 浏览

arrays - 用于循环和比较的 Powershell Array 方法?

我有各种各样的计算机,我正在编写一个 Powershell 脚本,该脚本将网络共享与我服务器上计算机驱动程序的本地存储库一起保存在各自单独的目录中,作为每台机器的品牌和型号(例如联想 E460,戴尔 Latitude E5450 等)。

这是我正在尝试做的事情:

我想要获取计算机的信息(品牌和型号)并将其连接成一个字符串。然后我希望将该字符串引用到驱动程序目录的数组中,如果计算机制造商+型号匹配,我希望计算机下载该目录中的驱动程序。我来自 Web 开发背景,在这里我通常会使用 JavaScriptArray.prototype.filter()方法来过滤数组以与数组$computer中的每个子项进行比较$drivers

完成此任务的最佳方法是 Powershell?Powershell 有类似 JavaScript 的过滤和比较 Array 方法吗?或者将是Foreach -match或是-eq最有效的编写方式?

谢谢!

0 投票
2 回答
227 浏览

powershell - 带有 PowerShell 的文件选择菜单(不是对话框)

我在这里有这个脚本:

此时我想显示所选文件的名称。我怎么能这样做?

0 投票
4 回答
181 浏览

json - Powershell ForEach-Object 列变量

有点奇怪的问题。我有一个需要处理的大型 JSON 文件。基于另一个问题,我需要流式传输文件,因为否则它会因为内存而给我带来问题:JSON Powershell memory issue

我所拥有的是:

我可以轻松地使用 $row 来发布 Largefile.json 中最后处理的行。我想在当前处理的行中创建一个名称为 Id 的文件,并将正文列添加到文件中。但是,当我想使用 $row.Id 显示特定列时,不幸的是这显示为空。

Largefile.json 的结构如下:

最终结果应该是我有 5 个文件:

  • 1.txt - 文件内的值应该是:data1

  • 2.txt - 文件内的值应该是:data2

  • 3.txt - 文件内的值应该是:data3

  • 4.txt - 文件内的值应该是:data4

  • 5.txt - 文件内的值应该是:data5

我使用 Powershell 7.1.3

有什么方法可以像普通的 ForEach 一样使用 $row.Id 和 $row.ParentId 吗?

谢谢你的帮助。

0 投票
1 回答
112 浏览

arrays - 在PowerShell中为变量中的每一行初始化数组

我正在尝试为 CSV 文件中的每个唯一部门初始化数组。到目前为止,我有这个,它似乎没有按预期工作。

这给了我正确的输出,并将在 CSV 中列出所有部门的所有唯一值。

然后我尝试用一​​些随机值为每个部门初始化一个数组。

我的预期输出将是...

但是,我得到Cannot index into a null array.. 这告诉我数组没有初始化我想要的方式。任何帮助将不胜感激,谢谢!

0 投票
3 回答
1992 浏览

powershell - Powershell Foreach-Object -Parallel 如何在循环外更改变量的值(跟踪进度)

这段代码打印了一个简单的进程,一次只做一件事:

但是如果我想同时并行做两件事,我不能输出进度,因为我不能改变并行循环之外的变量。这没有做需要的事情:

我找不到一个好的解决方案来访问外部变量,不仅要使用 $Using 读取它,还要更改它。这在 Powershell 7 中是否可行?

0 投票
0 回答
46 浏览

foreach - Powershell ForEach-Object 仅返回列表中第一个对象的值

我对 Powershell 脚本很陌生,在这里不知所措。我们正在尝试构建一个脚本,该脚本最终将从文本文件中提取的域上的所有系统收集一些详细信息,从中查询特定数据,然后将此数据导出到 CSV 文件作为“入职”操作。

下面的代码是我目前正在使用的代码,它可以很好地提取信息,但它仅适用于系统列表中的一个系统。如果我们在 txt 文件中有 10 个系统,它只会列出该系统的信息 10 次。我错过了什么,或者我以错误的方式解决这个问题?

以下是针对包含 10 个系统 DC01-DC05 和 FP01-FP05 的 txt 文件运行时示例输出文件的图像的链接。我们看到的只有 10 行,其中包含 DC01 收集的数据。

CSV 输出示例

感谢您的耐心等待以及您可以提供的任何帮助。

-拍