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