gora, да, спасибо - до этого вчера и доискался.
Теперь борюсь за чтение в переменную нескольких строк из файла. Если текст в файле разбить на строки, вашей конструкцией считывается только последняя строка (или абзац одной строкой). Читал что-то про
отложенное раскрытие переменных в цикле
FOR http://www.robvanderwoude.com/variableexpansion.php
Универсально сработала конструкция
@setlocal ENABLEDELAYEDEXPANSION
@FOR /F "tokens=*" %%i IN (comment.txt) do @IF NOT X%%i==X set comment=!comment!%%i
...
@endlocal
- читает из файла всё, игнорирует в файле пустые строки и абзацы - просто склеивает текст в одну строку.
Написал
IF NOT X%%i==X потому что не знаю, как проверить %%i на пустое значение по-другому - побоялся, что оно может быть либо пустым, либо "" - и вдруг это будут разные значения.
При таком коде надо учесть, что строки склеиваются непосредственно - без разделителя (пробела, например) между склейками.
В идеале, хорошо бы прочитать в одну переменную текст как есть - с разбиением на строки и абзацы (принципиально в батниках возможно использование таких переменных - разбитых на строки и абзацы?), а потом обработать в переменной возможное вхождение спецсимволов (", <, & и т.п.) - потому как эта переменная будет использоваться как параметр (тег комментария) в кодировщике lame, и необработанный текст может сбить команду кодировки.