Пакетный скрипт, копирующий файл только из последней строки данного текстового файла
Я пытаюсь скопировать другой файл в данной папке из текстового файла (строка за строкой) и используя некоторые конкретные ключевые слова в строках, но он копирует файл из последней строки. Я новичок в пакетном сценарии, поэтому я не знаю слишком много о синтаксисе пакетного сценария, мой код
@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