Вы можете просто использовать% *, чтобы передать все, что было передано в файл .bat чему-либо еще.
Обратите внимание, что если вы передадите "слова с пробелами" в пакетный файл, он будет рассматриваться как 1 параметр в кавычках и передается как таковой. Если вы опустите "", пакет все равно отправит его программе, но программа увидит его как отдельные параметры. Это действительно зависит от того, как вызывается командный файл, чтобы узнать, будут ли эти кавычки там или нет, и если это необходимо. Например, если вы перетащите файл в проводнике на пакетный файл, он добавит для вас кавычки. Если вы набираете вручную из командной строки, это до пользователя, чтобы проверить кавычки.
Так:
program.exe %0
должно быть достаточно в вашем случае.
Кроме того, из командной строки, если вы автоматически заполняете имена файлов с помощью вкладки, кавычки автоматически добавляются, если они необходимы, и даже если в кавычках может показаться, что вам нужно отредактировать их, чтобы продолжить ввод, у вас действительно нет к. Командная строка достаточно умна.
Пример: здесь я набираю prog, дважды нажимаю tab, затем продолжаю печатать и еще раз нажимаю tab.
C:\>_
C:\>cd prog_ (tab)
C:\>cd "Program Files"_ (tab)
C:\>cd "Program Files (x86)"_
C:\>cd "Program Files (x86)"\Micro_ (tab)
C:\>cd "Program Files (x86)\Microsoft Office"_ (enter)
C:\Program Files (x86)\Microsoft Office>_