问题标签 [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.
powershell - 用于比较文件夹结构的 Powershell 脚本
我正在尝试编写一个powershell脚本,该脚本将根据模板文件夹结构布局检查目录的文件夹结构,并报告其不同的文件夹是否丢失或添加了不同的文件夹。
因此,对于目录 1,它会报告文件夹 C 是附加的,而对于目录 2,它会报告文件夹 B 丢失
任何帮助将不胜感激
powershell - 使用“比较对象”导致格式不正确
我目前有两个满是名字的数组。一个包含从 txt 文件中读取的数据,一个包含从 CSV 文件中读取的数据。我正在尝试返回出现在两个列表中的名称列表,并且只出现在单个列表中。对于 CSV 文件,PowerShell 本来想放在"Name="
每个项目的前面,但我$formattedName = $csvFile -replace "Name=",""
以前把它去掉了。我还应该提到这Name
是该列的标题。此时,如果我调用变量$formattedName
,它会返回名称列表,而不是Name=
前面的名称(也就是 txt 如果格式化以进行比较)。
现在尝试使用时Compare-Object
,我遇到了一个问题。我的代码如下:
现在,在运行此命令时,PowerShell 仍将放在Name=
CSV 文件的每个项目的前面,而不管我只是将其格式化为不这样做。我的最终结果是两个列表,一个包含 txt 文件中的所有项目,另一个包含 CSV 文件中的所有项目。没有两个匹配值,因为Steven
与 不同Name=Steven
。输出的一个例子是:
我该如何解决这个问题?我使用得当吗?
powershell - 将比较对象的结果添加到数组
我有两个文件正在比较,一个是 CSV,一个是 txt 文件。CSV 文件包含大约 5,000 个服务器的信息,而 txt 文件只有大约 3,000 个服务器名称。CSV 中的列是名称、操作系统和类型。这是我为比较对象所做的:
在此之后,我得到了三个选择。两个列表==
中的,仅在 txt 文件=>
中的,以及仅在 csv 文件中的=<
。
我想要做的是取.SideIndicator
for 等于的值,==
并将其作为一列放在里面,$csvFile
这样我最终可以做If ($csvFile.SideIndicator -eq "==")...
所以基本上我想弄清楚如何写:
我尝试在脚本中$count++
当前拥有的位置放置一个变量,add .SideIndicator...
以查看返回了多少结果,并且它始终返回 0。
有人可以帮我解决这个问题或给我一些想法吗?
powershell - 比较对象返回意外输出
我创建了一个捕获Get-Volume
到本地文件的小函数。下次该函数运行时,它会将新鲜的输出Get-Volume
与之前保存到文件系统的输出进行比较。
这个函数非常适合服务,但奇怪的是返回一个“不同”的卷,即使我们可以从输出中看到它不是。
我的预期结果是一切都返回为相等/不变(==
),因为没有任何属性发生变化,如下面的输出所示。然而由于某种原因,SideIndicator
添加的属性Compare-Object
表示标记为 的卷的值差异Recovery
。
powershell - 比较两个文本文件并将差异写入文本文件
我想比较 2 个文本文件并在另一个文本文件中输出差异。
主机名_old.txt
主机名_new.txt
结果
这就是我想要的:(摆脱 InputObject 和 SideIndicator)
注意:一个输入文件具有重复条目的相关问题是此问题的主题。
powershell - 比较两个重复的文本文件并将明显的差异写入文本文件
我想比较 2 个文本文件并在另一个文本文件中输出差异。
主机名_old.txt
hostname_new.txt(有重复的名称)
结果:
请注意此差异列表中的server04
和server02
存在方式,即使它们存在于两个输入文件中。
这就是我要的:
powershell - Compare-Object PowerShell 输出一个 1KB 的文件,其中包含 2 个空行
我有一个 PowerShell 脚本,它比较昨天和今天的文件,以提供可以进一步加载到 Oracle 表中以满足报告需求的更改。我的麻烦是,在周末源系统没有变化的情况下,今天的文件与昨天的文件相比没有新的行(file1 和 file2 相同)。Compare-Object
仍然会产生一个只有换行符的输出文件。我在这个论坛上搜索了可能有类似问题的任何人,以下是我迄今为止尝试过的。
初始代码:
我尝试将以下内容添加到我的代码中,但仍然没有帮助
我可以添加什么来识别文件没有数据(只是空白/换行符),这样我就可以防止将空行加载到表中。任何帮助表示赞赏,在此先感谢。
powershell - Import-Csv 数据解析为数组
我有一个 CSV 文件,其中在某些单元格中包含多行。我将使用这些数据来比较从 powershell 获得的值。
这将返回对象之间的差异,但值是相同的。
预期结果不应返回任何内容,因为两个值相同。
CSV 内容:
代码:
arraylist - Powershell Compare-Object 不比较数组列表内容
我有 2 个数组,想在 powershell 上进行比较。我为此使用了 Compare-Object,但有时比较过程不正确。
如果其中一个数组的记录在另一个数组中不存在,则识别出差异
但是如果使用其中一列进行差异,则不会触发任何内容
这是我用于此结果的代码
我预计结果是这样的:
Powershell 中是否还有其他功能可以让我获得预期的结果?
powershell - "$xyz" 和 "Write-Host "$xyz"" 给出不同的输出
我正在对一个位置(原始文件夹)中的所有文件进行哈希处理,并将哈希值写入变量,然后对另一个位置(目标文件夹)中的所有文件执行相同操作:
然后我将它们与 Compare-Object 进行比较,如下所示:
现在在我的测试中我故意有偏差,所以当上面的代码没有返回差异时,我知道我有问题。
然后我发现如果我执行以下操作,则哈希值不存在:
但是,如果我只是键入以下内容并按 Enter,则存在哈希值(如我所愿):
我假设当我使用Compare-Object
时,我的变量没有像我预期的那样呈现散列值。
有谁知道发生了什么或有什么建议?这用于确保文件从原始位置移动到目标位置(这是我正在处理的脚本中的一项检查)。我保留这个纯粹的 PowerShell,这意味着 noxcopy
或robocopy
.