the following code for A folder comparison, it's from here:
https://autohotkey.com/boards/viewtopic ... 30#p204630
Script works with privilege.
Code: Select all
#SingleInstance, Ignore
{
dir1 := ""
dir2 := ""
fileMask := ""
gosub, DoTheWork
Gui Add, ListBox, w530 r10 vfiles1, % "Dir1 = " dir1 "| |" list1
Gui Add, ListBox, w530 r10 vfiles2, % "Dir2 = " dir2 "| |" list2
Gui Add, Button, w50 gGuiOK default, OK
Gui Add, Button, x+10 w50 gGuiClose, Cancel
Gui,Add, Text, yp+5 x138,Dir1
Gui,Add, Edit, yp-3 x160 w90 vDir1,%dir1%
Gui,Add, Text, yp+2 x258,Dir2
Gui,Add, Edit, yp-3 x282 w90 vDir2,%dir2%
Gui,Add, Text, yp+2 x396,Mask
Gui,Add, Edit, yp-3 x423 w40 vFileMask,%fileMask%
Gui Add, Button, yp x483 w60 gGo, Go
;Gui Show, w1200
Gui Show, w550
Return
Go:
Gui, Submit, NoHide
gosub, DoTheWork
GuiControl,,files1,% "|Dir1 = " dir1 "| |" list1
GuiControl,,files2,% "|Dir2 = " dir2 "| |" list2
return
GuiOK:
GuiClose:
GuiEscape:
ExitApp
DoTheWork:
filelist1 := filelist2 := ""
list1 := list2 := ""
Loop %dir1%\%fileMask%
{
If ( A_LoopFileName ~= "~\$")
continue
fileList1 .= A_LoopFileName . "`n"
fnb1 := A_Index
}
StringTrimRight fileList1, fileList1, 1
Loop %dir2%\%fileMask%
{
If ( A_LoopFileName ~= "~\$")
continue
fileList2 .= A_LoopFileName . "`n"
fnb2 := A_Index
}
StringTrimRight fileList2, fileList2, 1
Sort fileList1
Sort fileList2
StringSplit files_1_, fileList1, `n
StringSplit files_2_, fileList2, `n
idxF1 := idxF2 := 1
Loop
{
If (files_1_%idxF1% = files_2_%idxF2%)
{
; We are in synch
list1 .= files_1_%idxF1% . "|"
idxF1++
list2 .= files_2_%idxF2% . "|"
idxF2++
}
Else
{
; Either file at idxF1 or at idxF3 is missing, we must find which one
If (files_1_%idxF1% > files_2_%idxF2%)
{
; Missing in first list
list1 .= " |" ; Empty
list2 .= files_2_%idxF2% . "|"
idxF2++
}
Else
{
; Missing in second list
list1 .= files_1_%idxF1% . "|"
idxF1++
list2 .= " |" ; Empty
}
}
If (idxF1 > fnb1)
{
Loop % fnb2 - idxF2 + 1
{
list1 .= " |" ; Empty
list2 .= files_2_%idxF2% . "|"
idxF2++
}
Break
}
If (idxF2 > fnb2)
{
Loop % fnb1 - idxF1 + 1
{
list1 .= files_1_%idxF1% . "|"
idxF1++
list2 .= " |" ; Empty
}
Break
}
}
StringTrimRight list1, list1, 1
StringTrimRight list2, list2, 1
Return
}
Code: Select all
SetTitleMatchMode, 1
#IfWinActive, Comparison
$1::
ControlSetText, Edit1, E:\ask\work
ControlSetText, Edit2, E:\ask\backup
ControlSetText, Edit3, *.docx
ControlClick, Go, Comparison
return
;;---------------------------------------------------
$2::
ControlSetText, Edit1, E:\ask\sales
ControlSetText, Edit2, E:\ask\work
ControlSetText, Edit3, *.pdf
ControlClick, Go, Comparison
return
;;---------------------------------------------------
$3::
ControlSetText, Edit1, E:\ask\sales
ControlSetText, Edit2, E:\ask\backup
ControlSetText, Edit3, *.txt
ControlClick, Go, Comparison
return
;;---------------------------------------------------
But the following times are not correct Unless you are reloading or if you close the program and reopen it. see The error in the attached picture(2). Can anyone correct this error?
Any help would be greatly appreciated.