Explorer задаёт текущую папку, а bat-файл — нет: вот почему программа ломается
Why a program doesn't work when run from a batch file, but works when clicked
Читатель спросил, почему программа работает при двойном клике из Explorer, но выдаёт ошибку при запуске из bat-файла. Raymond Chen сразу заподозрил, что не задана текущая папка. Explorer при двойном клике устанавливает текущую директорию в папку с файлом, чтобы программы могли находить вспомогательные файлы. Bat-файл запускал программу по полному пути, не меняя текущую папку. Клиент подтвердил: после pushd и popd всё заработало.
Explorer при двойном клике устанавливает текущую директорию программы в папку, содержащую тот файл, по которому вы кликнули.