Вот что вам нужно:
first.cmd:
@echo off
set maincommand=echo hello world!
call test.cmd %maincommand%
test.cmd:
@echo off
%*
В этом случае first.cmd
передает фактическую команду (ваш пример только что передал константу "maincommand"
, а не ее значение).
Кроме того, test.cmd
выполняет команду, состоящую из каждого параметра, а не только первого.
Когда вы создаете эти два файла и выполняете first.cmd
, вы получаете:
hello world!
как и ожидалось.