Не знал, как это объяснить, поэтому вот код
@echo off
set test=0
for /f %%a in (textfile.txt) do (
rem loops five times(5 lines in textfile.txt)
set /a test=test+1
rem Adds 1 to Test
echo %%a
rem Echo's correct line in file
echo %test%
rem Echo's whatever X was before the loop
)
echo %test%
rem Displays the correct value of X
pause
это просто пример того, где я нахожу проблему, txtfile.txt имеет 5 строк, поэтому цикл for выполняется 5 раз, каждый раз test получает +1 к нему, а /a отображает правильное значение X, но последнее эхо в цикле for отображает 0, что является значением test перед циклом.
Значение теста не меняется до тех пор, пока цикл не завершится... можно ли это исправить?
Вот что я хочу сделать, так как может быть более простой способ: я хочу запустить цикл for, который находит все rtf в серии подпапок и копирует их все в каталог all с новым именем, 1.rtf ,2.rtf,3.rtf и т. д. Причина, по которой мне нужно переименовать их при передаче, заключается в том, что все они имеют одинаковое имя.