Я не могу воспроизвести вашу проблему здесь. Только когда я добавляю пробел во входной файл, он также появляется в выходном файле.
Если вы делаете
echo %%G >> D:\newfile.txt
тогда пробел добавляется, очевидно. Это может быть в том случае, если вы упростили свой код перед публикацией здесь.
Если вы действительно начинаете с пробела на входе, используйте следующее:
setlocal enabledelayedexpansion
for /f "tokens=1 delims=" %%G in (D:\originalFile.txt) do (
set "line=%%G"
echo !line:~-1!>>D:\newfile.txt
)
Операции с подстрокой применяются только к переменным среды, поскольку в справке уже указано.
В любом случае, если вы уверены, что входной файл не содержит завершающего пробела, тогда вам фактически не нужен цикл. Простой
type D:\originalFile.txt >> D:\newfile.txt
должно хватить.