Тема: CMD/BAT: Не работает счётчик
@echo off
Set N=0
for /r .\Dir\ %%i in (*.txt) do (
set /a N = N + 1
echo %N%:%%~ni
)
Не работает счётчик "set /a N = N + 1" не работает почему что я не так делаю?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
@echo off
Set N=0
for /r .\Dir\ %%i in (*.txt) do (
set /a N = N + 1
echo %N%:%%~ni
)
Не работает счётчик "set /a N = N + 1" не работает почему что я не так делаю?
Вы не правы. Работает:
@echo off
Set /a N = 0
for /r .\Dir\ %%i in (*.txt) do (
set /a N = N + 1
echo %N%:%%~ni
)
echo %N%
Дело в том, что внутри скобок раскрытие переменных происходит в момент входа в них (то бишь, однократно при входе). Отсюда и будет «0:…», «0:…» …
Вам нужно использовать отложенное раскрытие переменных, например, так:
@echo off
setlocal enableextensions enabledelayedexpansion
set /a n = 0
for /r ".\Dir\" %%i in (*.txt) do (
set /a n = n + 1
echo !n!:%%~ni
)
endlocal
exit /b 0
Либо вызывать как процедуру:
@echo off
setlocal
set /a n = 0
for /r ".\Dir\" %%i in (*.txt) do (
set /a n = n + 1
call echo %%n%%:%%~ni
)
endlocal
exit /b 0
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться