Applying substring operation to FOR token value (batch file)
(Edited question for clarity)
Applying substring operation to a token value in a FOR does not work:
for /F "tokens=1 delims=" %%G in ("tokenvalue ") do (
Echo %%G:~-1
)
The substring operation does not delete the space at the end. Instead, :~-1
gets开发者_如何学编程 appended to the echoed result to produce:
tokenvalue :~-1
I cannot reproduce your problem here. Only when I append a space to the input file it also appears in the output file.
If you do
echo %%G >> D:\newfile.txt
then a space gets appended, obviously. This might be the case if you simplified your code before posting here.
If you indeed start out with a space in the input, then use the following:
setlocal enabledelayedexpansion
for /f "tokens=1 delims=" %%G in (D:\originalFile.txt) do (
set "line=%%G"
echo !line:~-1!>>D:\newfile.txt
)
You apply substring operations only to environment variables as the help already states.
In any case, if you're sure that the input file does not contain the trailing space, then you don't actually need the loop. A simple
type D:\originalFile.txt >> D:\newfile.txt
should suffice.
精彩评论