проще на autoit, но его тоже учить нужно

Так что из таких вариантов (не bat) выбор не велик, либо autoit либо VBS
на autoit это будет что-то вроде
Наверное как-то так:
Код:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate('Копирование', 320, 150)
GUICtrlCreateLabel('Копируемая директория:', 8, 10)
$Input1 = GUICtrlCreateInput("", 8, 30, 257, 21)
$Button1 = GUICtrlCreateButton("...", 272, 25, 35, 25)
GUICtrlCreateLabel('Пункт назначения:', 8, 60)
$Input2 = GUICtrlCreateInput("", 8, 80, 257, 21)
$Button2 = GUICtrlCreateButton("...", 272, 80, 35, 25)
$Button3 = GUICtrlCreateButton("Начать копирование", 100, 120, 120, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$folder1 = FileSelectFolder("Выберите каталог.", "", '', '', GUICreate(''))
GUICtrlSetData($Input1, $folder1)
Case $Button2
$folder2 = FileSelectFolder("Выберите каталог.", "", '', '', GUICreate(''))
GUICtrlSetData($Input2, $folder2)
Case $Button3
If GUICtrlRead($Input1) = "" Then
MsgBox(0,'Ошибка','Не казан каталог-источник')
ElseIf GUICtrlRead($Input2) = "" Then
MsgBox(0,'Ошибка','Не указан каталог назначения')
Else
MsgBox(0,'',$folder1)
DirCopy ($folder1,$folder2,0) ;если третий параметр 1 тогда с перезаписью файлов с одинаковыми именами
EndIf
EndSwitch
WEnd
за работоспособность не ручаюсь, писалось прямо здесь