问题标签 [compareobject]

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 投票
2 回答
2683 浏览

powershell - 用于比较文件夹结构的 Powershell 脚本

我正在尝试编写一个powershell脚本,该脚本将根据模板文件夹结构布局检查目录的文件夹结构,并报告其不同的文件夹是否丢失或添加了不同的文件夹。

因此,对于目录 1,它会报告文件夹 C 是附加的,而对于目录 2,它会报告文件夹 B 丢失

任何帮助将不胜感激

0 投票
1 回答
40 浏览

powershell - 使用“比较对象”导致格式不正确

我目前有两个满是名字的数组。一个包含从 txt 文件中读取的数据,一个包含从 CSV 文件中读取的数据。我正在尝试返回出现在两个列表中的名称列表,并且只出现在单个列表中。对于 CSV 文件,PowerShell 本来想放在"Name="每个项目的前面,但我$formattedName = $csvFile -replace "Name=",""以前把它去掉了。我还应该提到这Name是该列的标题。此时,如果我调用变量$formattedName,它会返回名称列表,而不是Name=前面的名称(也就是 txt 如果格式化以进行比较)。

现在尝试使用时Compare-Object,我遇到了一个问题。我的代码如下:

现在,在运行此命令时,PowerShell 仍将放在Name=CSV 文件的每个项目的前面,而不管我只是将其格式化为不这样做。我的最终结果是两个列表,一个包含 txt 文件中的所有项目,另一个包含 CSV 文件中的所有项目。没有两个匹配值,因为Steven与 不同Name=Steven。输出的一个例子是:

我该如何解决这个问题?我使用得当吗?

0 投票
3 回答
695 浏览

powershell - 将比较对象的结果添加到数组

我有两个文件正在比较,一个是 CSV,一个是 txt 文件。CSV 文件包含大约 5,000 个服务器的信息,而 txt 文件只有大约 3,000 个服务器名称。CSV 中的列是名称、操作系统和类型。这是我为比较对象所做的:

在此之后,我得到了三个选择。两个列表==中的,仅在 txt 文件=>中的,以及仅在 csv 文件中的=<

我想要做的是取.SideIndicatorfor 等于的值,==并将其作为一列放在里面,$csvFile这样我最终可以做If ($csvFile.SideIndicator -eq "==")...

所以基本上我想弄清楚如何写:

我尝试在脚本中$count++当前拥有的位置放置一个变量,add .SideIndicator...以查看返回了多少结果,并且它始终返回 0。

有人可以帮我解决这个问题或给我一些想法吗?

0 投票
1 回答
69 浏览

powershell - 比较对象返回意外输出

我创建了一个捕获Get-Volume到本地文件的小函数。下次该函数运行时,它会将新鲜的输出Get-Volume与之前保存到文件系统的输出进行比较。

这个函数非常适合服务,但奇怪的是返回一个“不同”的卷,即使我们可以从输出中看到它不是。

我的预期结果是一切都返回为相等/不变(==),因为没有任何属性发生变化,如下面的输出所示。然而由于某种原因,SideIndicator添加的属性Compare-Object表示标记为 的卷的值差异Recovery

0 投票
3 回答
1591 浏览

powershell - 比较两个文本文件并将差异写入文本文件

我想比较 2 个文本文件并在另一个文本文件中输出差异。

主机名_old.txt

主机名_new.txt

结果

这就是我想要的:(摆脱 InputObject 和 SideIndicator)

注意:一个输入文件具有重复条目的相关问题是此问题的主题。

0 投票
1 回答
485 浏览

powershell - 比较两个重复的文本文件并将明显的差异写入文本文件

我想比较 2 个文本文件并在另一个文本文件中输出差异。

主机名_old.txt

hostname_new.txt(有重复的名称)

结果:

请注意此差异列表中的server04server02存在方式,即使它们存在于两个输入文件中。

这就是我要的:

0 投票
2 回答
144 浏览

powershell - Compare-Object PowerShell 输出一个 1KB 的文件,其中包含 2 个空行

我有一个 PowerShell 脚本,它比较昨天和今天的文件,以提供可以进一步加载到 Oracle 表中以满足报告需求的更改。我的麻烦是,在周末源系统没有变化的情况下,今天的文件与昨天的文件相比没有新的行(file1 和 file2 相同)。Compare-Object仍然会产生一个只有换行符的输出文件。我在这个论坛上搜索了可能有类似问题的任何人,以下是我迄今为止尝试过的。

初始代码:

我尝试将以下内容添加到我的代码中,但仍然没有帮助

我可以添加什么来识别文件没有数据(只是空白/换行符),这样我就可以防止将空行加载到表中。任何帮助表示赞赏,在此先感谢。

0 投票
2 回答
172 浏览

powershell - Import-Csv 数据解析为数组

我有一个 CSV 文件,其中在某些单元格中包含多行。我将使用这些数据来比较从 powershell 获得的值。

这将返回对象之间的差异,但值是相同的。

预期结果不应返回任何内容,因为两个值相同。

CSV 内容:

代码:

0 投票
1 回答
218 浏览

arraylist - Powershell Compare-Object 不比较数组列表内容

我有 2 个数组,想在 powershell 上进行比较。我为此使用了 Compare-Object,但有时比较过程不正确。

如果其中一个数组的记录在另一个数组中不存在,则识别出差异

但是如果使用其中一列进行差异,则不会触发任何内容

这是我用于此结果的代码

我预计结果是这样的:

Powershell 中是否还有其他功能可以让我获得预期的结果?

0 投票
1 回答
107 浏览

powershell - "$xyz" 和 "Write-Host "$xyz"" 给出不同的输出

我正在对一个位置(原始文件夹)中的所有文件进行哈希处理,并将哈希值写入变量,然后对另一个位置(目标文件夹)中的所有文件执行相同操作:

然后我将它们与 Compare-Object 进行比较,如下所示:

现在在我的测试中我故意有偏差,所以当上面的代码没有返回差异时,我知道我有问题。

然后我发现如果我执行以下操作,则哈希值不存在:

但是,如果我只是键入以下内容并按 Enter,则存在哈希值(如我所愿):

我假设当我使用Compare-Object时,我的变量没有像我预期的那样呈现散列值。

有谁知道发生了什么或有什么建议?这用于确保文件从原始位置移动到目标位置(这是我正在处理的脚本中的一项检查)。我保留这个纯粹的 PowerShell,这意味着 noxcopyrobocopy.