Até agora, não encontrei nenhuma solução para esse problema!
Eu tenho apenas uma solução alternativa para definir alguns scripts BAT.
Usando meu script, a solução para o seu problema se parece com isso
call INIT-TRAMEX.bat
%assign-sysout% FILE.SYSOUT.TXT
%w% a lot of
%w% text here
somecmd <%sysout%
Mas em todos os casos, a indirecção direta é impossível.
INIT-TRAMEX.bat
file define %ASSIGN-SYSOUT%
e %W%
variables
::******************************************************************************
::* INIT-TRAMEX.bat
::******************************************************************************
@echo OFF
set scriptdir=c:\Scripts
set ASSIGN-SYSOUT=call %scriptdir%\AssignSysout.bat
set WRITE-TEXT=call %scriptdir%\WriteText.bat
set W=call %scriptdir%\WriteText.bat
O script
ASSIGN-SYSOUT
define a variável %sysout%
e cria um arquivo vazio.
Contém as seguintes linhas
set sysout=%1
@echo.>%sysout%
del %sysout%
WRITE-TEXT
script contém as seguintes linhas
IF "%1"=="" goto line
echo %* >>%sysout%
goto quit
:line
echo. >>%sysout%
:quit
Usando essas dicas, o script DOS é mais legível.