Итак, я возился с кодом и натолкнулся на странную проблему. У меня есть строка в файле с именем «tests», которая называется «1: 23195068336843541324». Я хочу, чтобы цикл for находил 3-й символ и, исходя из этого, находил определенное количество символов, начиная с 7-го символа. В этом случае я хочу найти 7-го и 8-го персонажа. Итак, я придумал этот вложенный цикл:
@ECHO off
SETLOCAL EnableDelayedExpansion
FOR /L %%i IN (1,1,5) DO (
FOR /F %%j IN ('FINDSTR /C:"%%i:" tests.txt') DO (
SET PH=%%j
SET mon=!PH:~2,1!
ECHO !mon!
SET test%%i=!PH:~6,%mon%!
ECHO !test1!))
Операторы ECHO предназначены исключительно для отладки, поэтому я могу видеть, что установлено для чего.
Но каждый раз он выводит ECHO is OFF
, потому что test1
никогда не устанавливается. Я воссоздал его с помощью этого цикла:
SETLOCAL EnableDelayedExpansion
SET test=123
SET number=2
FOR /L %%i IN (1,1,5) DO (
SET t%%i=!test:~1,%number%!
ECHO !t1!)
и работает нормально. Если я введу число для mon
в первом цикле, оно также будет работать нормально. Что я здесь не так делаю? Спасибо!