1

Тема: CMD/BAT: Поиск и копирование папок по списку из txt файла

Добрый день!

Есть папка, в которой около 1000 других папок с файлами, нужно найти и скопировать в отдельную папку все папки по списку, который находится в формате TXT

Помогите пожалуйста, находил тут похожий запрос, но не работает...

2

Re: CMD/BAT: Поиск и копирование папок по списку из txt файла

Привет.
Примерно так (переделал из своей работающей программки).
Папки задаются в файле .ini (кодировка DOS CP-866, чтобы не усложнять), вот его содержимое:

; Если первый символ в строке ";", то это комментарий 
; (им можно временно отключать обработку отдельных строк).

; Относительные пути к папкам, начиная с папки программы:
IN\Папка1
IN\Папка3
;IN\Папка4

; Абсолютные пути и расширения в именах папок также работают:
D:\TEST\Папка.Тест

Сама программка:

@echo off & title %~nx0 & SetLocal EnableExtensions EnableDelayedExpansion

rem Файл с именами копируемых папок
set "sFileIni=%~n0.ini"

goto :Main
rem ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Help
  echo.Копирование выбранных папок ^(см. файл !sFileIni!^)
  echo.Вызов : %~nx0 Папка_Куда
  echo.Пример: %~nx0 OUT
  echo.
:PauseEnd
  pause
:End
  exit /b

rem ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:Main

  rem Проверка наличия параметров и файла INI.
  if "%~1"=="" goto :Help
  if not exist "!sFileIni!" echo.*** Не найден файл !sFileIni!! & goto :PauseEnd

  set "sFldOut=%~1\"
  call set "sFldOut=%%sFldOut:\\=\%%" &rem В конце sFldOut будет ровно 1 символ "\"

  for /f "eol=; delims=" %%a in (!sFileIni!) do (
	for %%b in (%%~a) do (
	  set "sFld=%%~nxb\"
	  call set "sFld=%%sFld:\\=\%%" &rem В конце sFld будет ровно 1 символ "\"
	  echo. "%%~a" -^> "!sFldOut!!sFld!"
	  xcopy "%%~a"     "!sFldOut!!sFld!" /e /h /k /r /y >nul
            rem /E Копирует все папки и подпапки, включая пустые.
            rem /H Копирует скрытые и системные файлы.
            rem /R Заменяет файлы, доступные только для чтения.
            rem /K Копирует атрибуты. Простая команда Xcopy сбрасывает атрибут "Только чтение".
            rem /Y Подавляет запрос на подтверждение перезаписи существующего конечного файла.
  	)
  )

Endlocal
exit /b
Post's attachments

Copy_Folder.rar 2 kb, 4 downloads since 2021-12-10 

You don't have the permssions to download the attachments of this post.

3

Re: CMD/BAT: Поиск и копирование папок по списку из txt файла

Подобные вещи проще делать сторонними файловыми менеджерами. Для, например, Far Manager потребуется плагин «Select from Clipboard». Открываем файл-список, выделяем содержимое, копируем в буфер обмена, закрываем файл-список, переходим в каталог-приёмник на одной панели, в каталог-источник на другой панели, посредством вышеуказанного плагина выделяем потребные каталоги в каталоге-источнике и копируем на соседнюю панель в каталог-приёмник.

P.S. Я раз в десять дольше писал, нежели бы сие делалось.