У меня есть папки, такие как E:\Backups\code\Hazard\test1
... testn
Почему цикл работает не так, как ожидалось?
А внутри этих тестов папки что-то вроде E:\Backups\code\Hazard\test1\it0
... itn
Корневая папка E:\Backups\code
откуда запускается код.
Данный код работает на каждой подпапках и копиях summary.yml
от it0
до последней версии it(n)
.
Почему код работает только для папки test1
, а затем висит?
setlocal ENABLEDELAYEDEXPANSION
set root=%cd%
for /D %%X in (%root%\*) do (
echo %%X
cd %%X
for /D /r %%b in (*) do (
cd %%b
echo %%b
for /f "tokens=1,2,*" %%a in ('robocopy . . file.txt /l /nocopy /is /s /nc /ns /ts /ndl /njh /njs ^| sort /r') do set "lastFolder=%%~dpc" & goto :done
:done
echo Last folder : %lastFolder%
for /d %%j in (*) do (
if /i "%%~nj"=="it0" COPY %%j\summary.yml %lastFolder%
)
cd ..
)
)
GOTO разбивает конструкцию FOR. – Squashman
Спасибо Mofi и Squashman за ваш ответ. @ Mofi Yesh в моем коде все от до для находится на одной строке, его просто, когда я вставил на этом сайте, он разбивается на несколько строк. Я новичок в пакетном программировании, и его трудно сопоставить стиль кодирования, как в VBA или других, а не в пакетном режиме. Я постараюсь сделать то, что вы предложили. Благодарю. – bob
@Mofi, нет, все, от ** для ** до ** do **, не обязательно должно быть в одной строке. –