|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] батник для копирования файлов из ряда поддиректорий |
|
CMD/BAT - [решено] батник для копирования файлов из ряда поддиректорий
|
Новый участник Сообщения: 22 |
Проблема следующая. Есть директория с n-ным количеством поддиректорий. Во всех этих поддиректориях нужно найти некоторые файлы и скопировать в единую дирректорию. Имена файлов задаются списком baselist.
Хотелось бы с применением нижеописанной конструкции Или проще будет задать список папок, из которых копировать все файлы? Но так не совсем удобно((( |
|
Отправлено: 14:37, 27-04-2010 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Будет вот так (насколько я понял):
- в переменную List - имя файла (и путь к нему при необходимости) со списком копируемых файлов - в переменную Dst - каталог, куда копировать файлы (на конце знак "\"). - копируется из текущего каталога (откуда произведен запуск) с подкаталогами. @echo off SetLocal EnableExtensions Set List=baselist.txt Set Dst=C:\TEMP\ if not exist %List% ( echo List-file not found! exit 1 ) Set log="%~dpn0.log" Set tmp="%~dpn0.tmp" Set wrk="%~dpn0.lst" echo ======= %date% %time:~0,8% =======>>%log% del /f %wrk% 2>nul dir /a /b /on /s>%tmp% for /f "usebackq tokens=* delims=" %%F in ("%List%") do findstr /c:"%%F" %tmp%>>%wrk% for /f "usebackq tokens=* delims=" %%F in (%wrk%) do ( copy /b /y "%%F" "%Dst%" >nul 2>nul if errorlevel 1 (echo Can`t copy %%F to "%Dst%">>%log%) else (echo File %%F copied>>%log%) ) del /f %tmp% del /f %wrk% |
Отправлено: 19:18, 27-04-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать А так вот нельзя?
Set Baselist="kuku.txt","kuku1.txt" Set Otkuda="H:\Delete" Set Kuda="H:\Delete1\" for /R %Otkuda% %%i in (%Baselist%) do copy "%%~fi" %Kuda% %%~fi расширяет имя файла в переменной %%i до полного имени (с путём). Кавычки надо на случай того, что в имени файла или пути могут встретиться пробелы |
------- Последний раз редактировалось megaloman, 27-04-2010 в 19:46. Причина: Пояснение Отправлено: 19:37, 27-04-2010 | #3 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Спасибо, megaloman, идею подхватил, под себя доработал. Вариант отличный!
|
Отправлено: 21:23, 27-04-2010 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] помагите написать батник для копирования папки | robingut | Скриптовые языки администрирования Windows | 23 | 04-05-2016 11:22 | |
CMD/BAT - [решено] Батник сбора файлов из поддиректорий в общую папку | rBBWYwg | Скриптовые языки администрирования Windows | 17 | 05-02-2012 16:14 | |
CMD/BAT - [Решено] Написать батник для копирования одного файла во многие папки рекурсивно. | Iodine | Скриптовые языки администрирования Windows | 5 | 20-05-2010 22:31 | |
Проблема на моменте копирования файлов для установки. | oxotnik_max | Автоматическая установка Windows 2000/XP/2003 | 8 | 18-04-2008 10:18 | |
программа для блокирования создания - копирования - файлов | oIo_DeN_oIo | Microsoft Windows 2000/XP | 9 | 27-02-2007 12:48 |
|