|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - XCOPY выборочное копирование файлов. |
|
|
CMD/BAT - XCOPY выборочное копирование файлов.
|
Новый участник Сообщения: 12 |
Профиль | Отправить PM | Цитировать Подскажите пожалуйста как с помощью батника и команды XCOPY скопировать все файлы из каталога за исключением файлов начинающихся с подчеркивания ( __111.txt ) в папку с текущей датой?
|
|
Отправлено: 21:19, 30-11-2015 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Если имена самой папки и её подпапок не начинаются с подчёркивания (кстати, у Вас в задании два подчеркивания - это часом не ошибка, файлы не должны начинаться с двух подчеркиваний?) то так:
@Echo Off Set "From=D:\Dir1" Set "To=D:\Dir2" Echo \_ >~tmp.tmp Set "Dt=%Date:~6,4%%Date:~3,2%%Date:~0,2%" Xcopy "%From%\*.*" "%To%\%Dt%\" /s /y /q /EXCLUDE:~tmp.tmp Del ~tmp.tmp Комментарии
Содержимое папки Dir1 копируется в папку Dir2 вместе с подпапками командой xcopy. Смысл её ключей смотрите при запуске команды xcopy /? в командном окне. Чтобы исключить копирование файлов, начинающихся на _ , до копирования организуем командой echo текстовый файл ~tmp.tmp со строкой c частью полного имени исключаемых файлов \_ . Этот файл указываем в ключе exclude в xcopy и после копирования удаляем.
|
------- Последний раз редактировалось megaloman, 01-12-2015 в 02:32. Отправлено: 22:58, 30-11-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Спасибо. Я завтра посмотрю точно но возможно файлы и с двумя подчеркиваниями. Если не трудно можете прокомментировать что есть что в этом файле?
|
Отправлено: 23:22, 30-11-2015 | #3 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Спасибо Вам огромное за помощь! Если можно, последний вопрос, как исключить копирование каталогов находящихся в той же директории?
Пардон, с этим разобрался сам Вопрос встал, как архивировать файлы при копировании или копировать сразу в архив с текущей датой? |
Последний раз редактировалось Fanbeer, 01-12-2015 в 10:49. Отправлено: 08:12, 01-12-2015 | #4 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Да нужно заархивировать из корневой папки файлы в архив с текущей датой, исключая файлы начинающиеся с подчеркивания. Из подкаталогаов по хорошему нужно архивировать в отдельную папку файлы созданные вчерашним днем
|
|
Отправлено: 12:43, 01-12-2015 | #5 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Из папок которые находятся в корневом каталоге, копировать в отдельную папку ( например "Журнал" ) файлы созданные предыдущем днем. Файлы небольшого размера. |
|
Отправлено: 16:13, 01-12-2015 | #6 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Из корневого каталога архивировать все файлы исключая те которые начинаются с ( _ ) и исключая папки которые находятся в этом каталоге.
Из папок которые находятся в корневом каталоге, копировать в отдельную папку ( например "Журнал" ) файлы созданные предыдущем днем.
@Echo Off Set "From=D:\Dir1" Set "ToY=D:\Dir2\Yesterday_" Set "MaskOff=_*.*" Set "Arc=%ProgramFiles%\winrar\winrar.exe" REM Set "Arc=%ProgramFiles%\winrar\rar.exe" md "%ToY%" 2>nul Set "Dt=%Date:~6,4%%Date:~3,2%%Date:~0,2%" FOR /F "usebackq delims=" %%i IN (`Dir "%From%\*.*" /b /A:D 2^>nul`) Do ( "%Arc%" a -tn2d -tb%Dt%0000 -x%MaskOff% -agYYYYMMDD "%ToY%\.rar" "D:\Dir1\%%i\*.*" ) Обе задачи в одном флаконе.
@Echo Off Set "From=D:\Dir1" Set "ToT=D:\Dir2\Today_" Set "ToY=D:\Dir2\Yesterday_" Set "MaskOff=_*.*" Set "Arc=%ProgramFiles%\winrar\winrar.exe" rem Set "Arc=%ProgramFiles%\winrar\rar.exe" >nul md "%ToT%" 2>nul md "%ToY%" 2>nul "%Arc%" a -x%MaskOff% -agYYYYMMDD "%ToT%\.rar" "D:\Dir1\*.*" Set "Dt=%Date:~6,4%%Date:~3,2%%Date:~0,2%" FOR /F "usebackq delims=" %%i IN (`Dir "%From%\*.*" /b /A:D 2^>nul`) Do ( "%Arc%" a -tn2d -tb%Dt%0000 -x%MaskOff% -agYYYYMMDD "%ToY%\.rar" "D:\Dir1\%%i\*.*" ) |
------- Последний раз редактировалось megaloman, 01-12-2015 в 21:30. Отправлено: 17:24, 01-12-2015 | #7 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Архив получился но вот из подкаталога файл за вчерашний день не скопировался!
|
Отправлено: 19:30, 01-12-2015 | #8 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Fanbeer, Естественно, это вторая задача. Уже сделал.
|
------- Отправлено: 21:33, 01-12-2015 | #9 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать megaloman, Спасибо огромное, реально выручили, дома попробовал все отлично работает
|
Отправлено: 23:04, 01-12-2015 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Выборочное сжатие системных файлов уменьшит занимаемое Windows 10 пространство | OSZone News | Новости и события Microsoft | 0 | 17-03-2015 13:30 | |
CMD/BAT - [решено] копирование файлов по сети через xcopy | alww | Скриптовые языки администрирования Windows | 4 | 13-03-2012 09:47 | |
CMD/BAT - [решено] Выборочное копирование из текстового файла. | odin1 | Скриптовые языки администрирования Windows | 5 | 09-03-2012 22:00 | |
CMD/BAT - Ошибка при использовании xcopy для копирования файлов с расширением более 3 символов | megaloman | Скриптовые языки администрирования Windows | 2 | 20-01-2011 09:36 | |
CMD/BAT - [решено] нельзя назвать батник делающий xcopy, xcopy.bat почему ? | foxbat | Скриптовые языки администрирования Windows | 3 | 17-09-2009 05:33 |
|