До сих пор я не нашел решения этой проблемы!
У меня есть только обходной путь в определении некоторых BAT-скриптов.
Используя мой скрипт, решение вашей проблемы выглядит следующим образом
call INIT-TRAMEX.bat %assign-sysout% FILE.SYSOUT.TXT %w% a lot of %w% text here somecmd <%sysout%
Но во всех случаях прямое косвенное обращение невозможно.
INIT-TRAMEX.bat
файл определяет %ASSIGN-SYSOUT%
и %W%
переменные
::****************************************************************************** ::* 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
ASSIGN-SYSOUT
скрипт определяет %sysout%
переменную и создает пустой файл. Он содержит следующие строки
set sysout=%1 @echo.>%sysout% del %sysout%
WRITE-TEXT
скрипт содержит следующие строки
IF "%1"=="" goto line echo %* >>%sysout% goto quit :line echo. >>%sysout% :quit
Используя эти советы, DOS-скрипт более читабелен.