Я управляю целым набором файлов и размещаю их в другой каталог. Что я должен сделать, теперь, узнают, какие файлы находятся в исходном каталоге, которые не находятся в выходном каталоге (проблема обрабатывается дюжиной компьютеров). Есть ли какой-либо сценарий, я могу работать на Windows, который отобразит это?
Используйте WinDiff. Это идет с Visual Studio и Платформой SDK и может быть загружено отдельно. Это должно главным образом сравнить файлы, но это также позволяет Вам рекурсивно сравнивать папки.
В PowerShell:
$d1 = get-childitem -path $dir1 -recurse
$d2 = get-childitem -path $dir2 -recurse
compare-object $d1 $d2
Если Вы ищете ручной процесс и установили Visual Studio, то можно использовать windiff.exe для показа различий.
можно попробовать этот 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