@echo off
setlocal enabledelayedexpansion
set "fullstring="
set "string=testago"
> x echo %string%
for %%? in (x) do set /a "strlength=%%~z? - 2"
del x
for /l %%a in (1,1,%strlength%) do (
set /a "b=%%a - 1"
call set "this=%%string:~!b!,1%%"
set "fullstring=!fullstring!!this!"
)
echo "%fullstring%"
pause
В цикле for /l
нет необходимости в переменной c
, поэтому она удалена.
Использование call set
для второго анализа строки для установки переменной this
.
b
требует отложенного расширения, тогда string
переменная требует расширения, так
использование call set
на string
с использованием удвоенных процентов достигает этого.
2-ым аргументом подстановки переменных является длина.
Символ за символом будет константой 1 для длины.
Конкатенация полной строки потребует отложенного расширения
или используйте call set
в качестве альтернативы.