В вашем коде вы добавляете пробел в каждой строке.
echo %%j[space]>> temp.tmp
Здесь вы можете удалить его (работает только с %% j), но обычно лучше установить перенаправление в качестве префикса, например
>> temp.tmp echo %%j
При нормальной переменной вариант постфикса может завершиться ошибкой
set var=hallo2
echo %var%>temp.tmp
Расширяется до echo hallo2> temp.tmp или echo hallo 2> temp.tmp, поэтому перенаправляется только stderr,Следующая проблема - ключевые слова ON OFF /? , если в вашем файле есть такое слово, вы получите неожиданные результаты, потому что echo интерпретирует эти слова.
[РЕДАКТИРОВАТЬ:] Чтобы решить эту проблему, вы можете использовать эхо (
>>temp.tmp echo(%%j
Вы можете получить пустые строки (или строки только с пробелами), вам просто нужно добавить их префикс.
for /f "delims=" %%a in ('findstr /n ".*" qut.bat') do (
set var=%%a
setlocal EnableDelayedExpansion
echo(!var:*:=!
endlocal
)
Переключение DelayedExpansion необходимо для сохранения символов "!" И "^"