Это самая странная вещь. Я не знаю, Forfiles асинхронный или что-то, но этот код кажется легким и очевидным для меня, и не работает:Использование Set/A в файле forfiles.exe в пакетном файле
set a=0
forfiles /S /C "cmd /c if @isdir==FALSE set /a a+=1 & echo !a!"
Простой счетчик я думал. Однако то, что получение выводимый: 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
И в конце a
все еще установлен в 0.
Я включил delayedexpansion. Почему это не работает?
'Forfiles/s' в рекурсивно вложенных папок, поэтому для эквивалентного цикла 'for' требуется'/r'. –
'for/f %% i in ('dir/b/s/a: -D') установить/a a = = 1 & echo! A!' Будет делать это рекурсивно. –
Да, вы совершенно правы, спасибо! – Endoro