sorry for the delay, I fought I did comment on this version... This still doesn't work as expected as
echo
when echo.bat is present will call echo.bat, whereas the builtin command shall be used.
when we have <cmd>.bat... be should first try to run_program() on the whole command; and no program is found, then, fall back to builtin cmd (and .bat becomes a parameter)