如何比较Windows 7中的文件夹


4

是否有开箱即用的方法来比较Windows 7中的两个文件夹?比较应显示子目录文件夹和子目录文件的差异。


powershell脚本?
strange walker

@strangewalker开箱即用吗?
happybuddha

是的。虽然为没有经验的人编写脚本可能很困难,但它的功能几乎是无限的
strange walker

如果你愿意尝试使用powershell,这里有类似问题的主题 stackoverflow.com/questions/6526441/...
strange walker

@strangewalker你可以鞭打一个吗?或者你知道每个人都可以使用它们吗?你也应该把它变成一个答案。这有帮助,我会赞成
happybuddha

Answers:


13

我不是PowerShell专业版,但是这会让你在一个文件夹中存在哪些文件和文件夹,而不是另一个文件夹。

$test1 = get-childitem -path C:\Users\IrisDaniela\Documents\test1 -recurse
$test2 = get-childitem -path C:\Users\IrisDaniela\Documents\test2 -recurse
compare-object $test2 $test1 | Where {$_.SideIndicator -eq '=>'}

这给出了:

InputObject                                                 SideIndicator
-----------                                                 -------------
test1a                                                      =>
test.txt                                                    =>

您也可以省略过滤,并获得:

$test1 = get-childitem -path C:\Users\IrisDaniela\Documents\test1 -recurse
$test2 = get-childitem -path C:\Users\IrisDaniela\Documents\test2 -recurse
compare-object $test2 $test1

InputObject                                                 SideIndicator
-----------                                                 -------------
test1a                                                      =>
test.txt                                                    =>
test2b                                                      <=

Dunno,如果这是你正在寻找的,但也许它给你一个开始:)

The folders in the example The commands and result

要比较内容使用: compare-object (get-content a.text)(get-content b.txt) 等等


2

有一个很好的unix工具,名为diff,你可以从cygwin安装。

在胜利时,有一个名为超比较的gui工具。


谢谢您的回复。 Windows 7中有什么OOTB可用吗?我无法在这台计算机上安装任何东西。
happybuddha

1
Cygwin工具也可以在没有安装的情况下运行,虽然它需要一些工作。如果你有运气,那么也会有同样的情况。最简单的解决方案是在家中安装它,并在pendrive上复制它们的文件夹。一定要不要对当地的网络规则做些什么,如果因为我的建议你失业了,我不能长时间好好睡觉
peterh

1
@happybuddha下载WinDiff,WinMerge或类似的差异。将其复制到通过网络可用于此计算机的共享。从那里执行它。 \\ myserver \ myshare \ windiff.exe localfolder1 localfolder2
Mark Allen

这是对Beyond Compare的另一次投票。
Daniel R Hicks

1

您可以创建一个批处理文件,创建包含目录结构的两个临时文本文件,然后将这些临时文件与之比较 fc

喜欢的东西(并根据喜好调整):

dir %1 /s /b /a /ong > temp1.txt
dir %2 /s /b /a /ong > temp2.txt
fc temp1.txt temp2.txt

dir命令的参数是: /s 递归到子文件夹 /b 不显示细节,你可能想省略这个 /ong 按名称排序,首先按目录排序

另外,请记住调整参数中的可能空格

编辑:如评论中所述,我们必须从列表文件文件中删除目录前缀。这可以使用批处理文件来完成,例如:

@echo off
setlocal EnableDelayedExpansion

for /F "delims==" %%a in (%1) do @(
    set CURR_LINE=%%a
    @echo !CURR_LINE:~%2!
)

endlocal

用作 unprefix text_file.txt prefix_length。所以举个例子 unprefix temp1.txt 5 将输出temp1.txt的内容,而不是每行的前5个字符。


dir /s /b 始终显示绝对路径,因此每行将具有不同的路径前缀,这将导致 fc 报告每一行。在比较之前,您将需要一个工具来去除路径前缀。
Adrian Pronk

啊,是的,你是绝对正确的。
frozenkoi

1

我用 FreeCommander (诺顿指挥官克隆)这样做。它提供“同步文件夹”功能,允许比较两个文件夹并可选择同步它们。比较选项包括“按CRC”,“按日期”,“按内容”,子文件夹和鬃毛更多。这是非常强大的,并帮助我很多时间完美地做你问的同样的事情。

一般来说,FreeCommander是非常强大的工具。我经常使用的另一个功能是搜索文件和文件夹。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.