Применение операции подстроки к значению токена FOR (пакетный файл) - PullRequest
1 голос
/ 19 мая 2011

(отредактированный вопрос для ясности)

Применение подстроки к значению токена в FOR не работает:

for /F "tokens=1 delims=" %%G in ("tokenvalue ") do (
    Echo %%G:~-1
)

Операция подстроки не удаляетпространство в конце.Вместо этого :~-1 добавляется к отраженному результату для получения:

tokenvalue: ~ -1

1 Ответ

2 голосов
/ 19 мая 2011

Я не могу воспроизвести вашу проблему здесь. Только когда я добавляю пробел во входной файл, он также появляется в выходном файле.

Если вы делаете

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

должно хватить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...