比较 Windows 上的目录

比较 Windows 上的目录

我正在处理一大堆文件并将它们放在不同的目录中。我现在需要做的是找出哪些文件在原始目录中但不在输出目录中(这个问题由十几台计算机处理)。是否有任何可以在 Windows 上运行并显示此内容的脚本?

答案1

使用温控器. 它附带 Visual Studio 和 Platform SDK,可以单独下载。它主要用于比较文件,但也允许您递归比较文件夹。

答案2

在 PowerShell 中:

$d1 = get-childitem -path $dir1 -recurse 
$d2 = get-childitem -path $dir2 -recurse 
compare-object $d1 $d2 

答案3

如果您正在寻找手动过程并且安装了 Visual Studio,那么您可以使用 windiff.exe 来显示差异。

答案4

您可以尝试这个 vbscript,无需下载任何东西。

Set objFS = CreateObject("Scripting.FileSystemObject")
Set d = CreateObject("Scripting.Dictionary")
Set objArgs = WScript.Arguments
strFolderA= objArgs(0)
strFolderB = objArgs(1)
Set objFolder = objFS.GetFolder(strFolderA)
Set objFolder1 = objFS.GetFolder(strFolderB)
For Each strFile In objFolder.Files
    strFileName = strFile.Name
    strFilePath = strFile.Path
    'collect all files and their full paths.
    d.Add strFileName, strFilePath
Next

For Each strFile In objFolder1.Files
    strFileName = strFile.Name
    strFilePath = strFile.Path
    If Not d.Exists(strFileName) Then
        WScript.Echo "Not found in : " & strFolderA & "->" & strFilePath
    End If 
Next

输出

C:\test>dir /B c:\tmp
file
test.bat

C:\test>dir /B c:\tmp1
test.bat

C:\test>cscript //nologo test.vbs c:\tmp1 c:\tmp
Not found in : c:\tmp1->C:\tmp\file

相关内容