问题标签 [file-comparison]
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.
python - 文件是否被读取或被记住?
如果我正在复制一个文件然后比较它:
为什么?这似乎有点毫无意义不是吗?毕竟我刚刚复制了文件,它必须是相同的,不是吗?错误的!硬盘驱动器具有可接受的错误率,非常小但仍然存在。唯一可以确定的方法是重新读取文件,但由于它只是在内存中,我怎么能确定系统(Windows 7)实际上已经从媒体中读取了文件,而不仅仅是从备用内存中返回了页面?
假设我必须将 16 TB 的数据写入可移动硬盘驱动器,并且我必须确保磁盘上的所有文件都没有损坏 - 或者至少不会比活动文件更损坏。在那 16 TB 的磁盘空间中,可能有一些文件不完全相同;我目前正在使用WinDiff 逐字节检查文件,但该文件比较实用程序很慢,但至少我可以合理地确定它实际上正在读取从光盘复制的文件,因为该页面应该早已不复存在。
任何人都可以提供基于确定性的专家意见,可能会发生:阅读还是记住?
值得怀疑的是,如果我复制的内存少于已安装的内存,则验证过程比复制快 - 应该是,读取比写入快,但不是那么快。如果我复制 3GB 的文件(我安装了 32GB 的内存)并且需要一分钟,那么验证应该需要 50 秒左右,并且在资源监视器上应该是 100% 的磁盘使用.. 不是,验证需要不到 10 秒并且资源监视器不让步。如果我复制的内存超过了安装的内存,那么验证几乎需要同样长的时间,并且资源监视器显示 100% - 这是我所期望的!那么这里发生了什么?
作为参考,删除了错误检查的真实代码:
windows - 有没有办法使用 FC 命令显示两个文件不同的确切位置?或任何其他在 Windows 中比较 2 个文件的好方法?
我正在用命令比较两个文件:
我得到了 4000 行的差异......
但是当它显示差异时,它只是从每个文件中粘贴 3~5 行,我不得不自己比较它们以找到差异发生的地方。
有没有办法让你更容易看出差异在哪里?也许像在其中一个与另一个不同的地方添加一个像“HERE”这样的标志?
powershell - Powershell - 找出是否有两个同名文件
我正在尝试检查一系列目录和子目录,以查看同一文件夹中是否有两个或多个同名文件。我认为我的问题是我如何尝试验证字符串。
对于以下测试目录:
- |-- C:\测试\
- |--C:\测试\YY\
- |--C:\Test\YY\xx.log
- |--C:\Test\YY\xx.txt
- |-- C:\Test\ZZ\
- |-- C:\Test\ZZ.log
- |-- C:\Test\ZZ.txt
- |--C:\测试\YY\
我需要我的代码来查找 xx.log 和 ZZ.log。我可以包括一个检查$_.PSisContainer
(但我认为没有必要)。
$item.basename+".txt"
提供了正确的字符串,但我不能使用该字符串来验证文件的存在。
任何人都可以帮助纠正我的代码吗?我想学习如何处理这样的连接字符串——我认为这是一个在其他领域有用的技巧。
python - Python文件字符串比较
我正在尝试在两个文本文件中的字符串之间进行字符串比较。文本由 bintext 应用程序从 .exe 读取并生成格式如下的文件生成:
文件 pos 内存 pos ID 文本
======== ======= == ====
00000000004D 00000040004D 0 !这个程序不能在DOS模式下运行。
0000000000A0 0000004000A0 0 富有!
我试图line.split
用空格做 a ,但结果最后一列内容也用空格分隔。而不是[!this program cannot be run in dos mode]
我得到[!this,program,cannot,be,run,in,DOS,Mode,.]
是否有任何简单的方法可以将 txt 文件中的整个第 3 列放入数组而不拆分它?
batch-file - 批处理文件比较 (FC) 输出不工作
我有两个文件,其中包含一个目录中的文件列表:files.txt 和 filesb.txt
file1.txt 包含以下内容:
虽然 filesb.txt 包含:
据我了解,以下批处理代码:
应该输出这个:
而是输出这个:
我该怎么做才能只输出不同的文件而不输出周围的文件?提前致谢!
shell - 查找名称相似但扩展名不同的文件
这是一个相当简单的问题,一直困扰着我。一点背景故事。我有一个装满脚本的文件夹。这些脚本获取数据文件*.dat
并以*.eps
. 我的脚本的扩展名是*.plt
. *.plt
我创建了一个运行该文件夹中所有文件的单行 shell 脚本。
我只是想确保*.pdf
我将在文档中使用的所有图像都是最新的。一时间,单行脚本还不错。但是当文件数量超过50个时,运行起来需要一些时间。我很少更改数据文件,但经常更改*.plt
脚本。脚本的编写方式使得名为的脚本this_script_does_something.plt
将创建一个名为this_script_does_something.eps
.
因此,这是我的问题。
- 有没有办法编写一个精炼的 shell 脚本,只执行
*.plt
比类似调用的文件更新的文件*.eps
?
我知道我可以在 Python 中做到这一点。但这似乎是作弊。我也知道我可以寻找更新的*.eps
并执行所有*.plt
比这更新的。对于大多数实际情况,这将解决我的问题。我在输入问题时才意识到这个选项,所以谢谢 SX。但是,作为一个教学练习,为了解决我最初的疑问,我想搜索个别案例:比较 each*.plt
与 each的修改时间*.eps
,并且仅在它们比输出更新时执行脚本。是否可以?它可以在一行中完成吗?
编辑:我忘了补充,*.plt
当没有同名*.eps
文件时,脚本也应该执行,这通常意味着脚本是新的并且尚未执行。
command-line - 通过命令行在现有融合实例中打开新选项卡
有没有办法使用命令行(如终端)或以编程方式在现有融合实例中开始新文件比较。
例如,以下两个命令启动两个实例meld
但是,我希望两个文件比较都在不同选项卡的同一实例中打开。我不知道如何获得它,但我可以说明我的意思。
我假设可以修改第二个命令(meld ./3/a3.txt ./4/b4.txt &
)。例如它可以帮助一些未知的选项,
或者也许可以编写一些应用程序,将文件比较添加到现有实例meld
c# - 识别 MSI 是否已被修改的最佳方法是什么
在我们的组织中,每次成功构建后,自动脚本都会将所有 MSI 从构建位置复制到共享文件夹内的新文件夹。有150多个项目。我面临的问题是,即使只更改了 20 个项目,自动脚本也会将所有 150 个 MSI 复制并粘贴到新文件夹中。因此,我无法确定哪个项目的 MSI 在最近的构建中经历了变化。如果我看到时间戳,则新文件夹中的所有 MSI 都是相同的。
任何人都可以建议任何方法来通过程序或使用任何工具手动识别修改后的 MSI 列表吗?如果是手动的,它不应该是一个一个的文件比较。
基本上,我想比较两个共享文件夹以生成修改后的 MSI 列表。
请注意:我们无权访问构建位置,也没有更改现有自动化脚本的范围。但我可以写新的。
version-control - 使用 Beyond Compare 或其他工具对 2 个目录进行命令行比较
我有 2 个目录,需要使用命令行实用程序进行比较。有2个要求:
- 不要在输出中显示相等的文件 - 也就是说,我什至不希望相等文件的名称出现在输出中
- 可以忽略不重要的差异
我尝试将 Beyond Compare 2 与规则比较一起使用,但没有找到满足第一个要求的选项,而使用 Beyond Compare 4 我没有成功满足第二个要求。
有谁知道如何使用 Beyond Compare 或其他工具来做到这一点?
linux - 逐行比较2个文件的脚本
我有两个文本文件:
文件1.txt
文件2.txt
输出可能是两个文件
匹配.txt
Non_Match.txt
有人可以帮我为此编写 bash 脚本吗?
如果有帮助,我想我有这里的逻辑:
编辑部分:
我也有一个 bash 脚本,但它没有帮助,因为它没有放置匹配的行,而是只放置匹配的 ID。