Buenas.. aquí tienes, no lo he hecho en bat, sino en vbs (simplemente guardalo con esta extensión)
set objfso = createobject("scripting.filesystemobject")
set objshell = createobject("wscript.shell")
objshell.run "cmd /c cd \ & dir /s /b archivo.txt > %temp%\tempfile.txt",vbhide,true
'Debes de cambiar archivo.txt, por el nombre de tu archivo a buscar
set temp = objfso.getspecialfolder(2)
set tempfile = objfso.opentextfile(temp & "\tempfile.txt",1)
directorio = tempfile.readline
tempfile.close
objfso.deletefile temp & "\tempfile.txt"
objfso.movefile directorio, "c:\carpetadestino"
'Debes de cambiar c:\carpetadestino por la carpeta a
'la que moveras el archivo
Ten en cuenta que este script solamente recupera un archivo con el nombre indicado, no sirve si pueden haber varios archivos con el mismo nombre, y también puede dar problemas con caracteres especiales en el nombre de archivo, con esto me refiero a por ejemplo "contraseña" (la "ñ" molesta)
Como ves, utilizo
dir /s /b nombrearchivo.txt para buscar el archivo en cuestión
Saludos