Пакетный скрипт, копирующий файл только из последней строки данного текстового файла

Я пытаюсь скопировать другой файл в данной папке из текстового файла (строка за строкой) и используя некоторые конкретные ключевые слова в строках, но он копирует файл из последней строки. Я новичок в пакетном сценарии, поэтому я не знаю слишком много о синтаксисе пакетного сценария, мой код

@echo off
setlocal disableDelayedExpansion
mkdir events_sorted
for /f "tokens=3-7" %%a in (input.txt) do set id=%%a-%%b-%%c-%%d%%e

for /r /d %%i in (.) do (
    cd %%i
    copy "%id%-00S.*" "%CD%/events_sorted/"
 )

pause

Thanx

1 ответ

Вам нужно вложить for /R петля в ваш for /F цикл размещения ( после do и положить ) в конце до pause, Кроме того, не храните строку строки в переменной idпросто используйте строку строки непосредственно в copy командная строка. Кроме того, не используйте cd %%i, но использовать %%i скорее, чем %CD%, Вот фиксированный код:

@echo off
setlocal EnableExtensions DisableDelayedExpansion

mkdir "events_sorted"
for /F "usebackq tokens=3-7" %%a in ("input.txt") do (
    for /R /D %%i in (.) do (
        copy "%%a-%%b-%%c-%%d%%e-00S.*" "%%~i/events_sorted/"
    )
)
pause

endlocal
exit /B
Другие вопросы по тегам