|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Архивирование, переименование и перемещение файлов с помощью BAT-файла |
|
CMD/BAT - Архивирование, переименование и перемещение файлов с помощью BAT-файла
|
Пользователь Сообщения: 136 |
Профиль | Отправить PM | Цитировать
Здравствуйте.
Помогите, пожалуйста, с написанием скрипта для следующей задачи: Необходимо с помощью BAT-файла создать архив заданной папки, при необходимости переименовать полученный архив, затем скопировать полученный архив в другие две папки, и после копирования удалить из первоначальной папки все файлы. Например: На диске C есть папка "Archive", в этой папке время от времени будут появляться папки типа "Иванов И.И. Отправка". Необходимо создать zip-архив этой папки, и если в её имени нет нужных пробелов, то переименовать архив так, чтобы получилось, например, "Иванов И. И. Отправка.zip" (то есть пробел после каждого инициала). Если в папке есть две папки (или больше), например, "Иванов И.И. Отправка" и "Петров П. П. Отправка" - то проделать то же самое со всеми этими папками (для каждой папки отдельный архив). Затем скопировать этот архив (архивы) в папку "C:\Отправка" и в папку "C:\Отправленные". После этого полностью очистить папку "C:\Archive" от всех лежащих там файлов. Не знаю, насколько возможна операция с переименованием, но она очень желательна... Из архиваторов в наличии есть 7Zip, но если можно средствами Windows сделать архив - то тоже пойдёт. Заранее спасибо. |
|
Отправлено: 09:53, 26-08-2015 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата kirillius:
по остальному приблизительно так 7z не устанавливал, но вроде должно выглядеть приблизительно так, лучше конечно, проверить. |
|
Отправлено: 12:05, 26-08-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 136
|
Профиль | Отправить PM | Цитировать Проверил. Не получилось.
Для тестирования сделал так: pushd C:\Test FOR /f "delims=" %%d IN ('dir * /b /a:d') do ( "C:\Program Files\7-Zip\7z.exe" a -tzip -r0 %%d.zip" "%%d" copy "%%d.zip" "C:\Test\Archive\1\%%~nd.zip" copy "%%d.zip" "C:\Test\Archive\2\%%~nd.zip" del /f /q "%%d.zip" "%%d" ) popd exit /b 0 Указанных папок Archive\1\ и Archive\2\ не появилось... Что может быть не так? 7za.exe - такого файла у меня в установленном 7zip нету, поэтому подставил что было... Цитата Elven:
|
|
Отправлено: 12:21, 26-08-2015 | #3 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 12:30, 26-08-2015 | #4 |
Пользователь Сообщения: 136
|
Профиль | Отправить PM | Цитировать Теперь всё работает почти так, как надо (за исключением переименования, с которым пока решено не заморачиваться).
pushd C:\Test FOR /f "delims=" %%d IN ('dir * /b /a:d') do ( "C:\Program Files\7-Zip\7z.exe" a -tzip -r0 "%%d".zip" copy "%%d.zip" "C:\%%d.zip" del /f /q "%%d.zip" "%%d" ) popd exit /b 0 1. Если в папке C:\Test лежит например две папки, то они все попадают в архив (вернее даже, создаются два архива, но в обоих по две папки), а надо чтобы каждая папка архивировалась отдельно. 2. При удалении удаляются файлы из папок, но сами папки не удаляются, надо чтобы они тоже удалялись. |
|
Отправлено: 11:06, 28-08-2015 | #5 |
Старожил Сообщения: 445
|
Профиль | Отправить PM | Цитировать Ребят, как можно реализовать сделующее:
Имеем машину с sql, каждый день в 01:00 sql делает резервную копию базы. Нужно брать послдений созданный файл, заархивировать и выложить на расшареную папку в сети. Подскажите такое реально? Что бы не всю папку бакапить |
Отправлено: 12:14, 13-05-2016 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Реально. Путь к папке? Путь к разделённому ресурсу? Чем будете архивировать?
|
Отправлено: 12:45, 13-05-2016 | #7 |
Старожил Сообщения: 445
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Бакап лежит в папке d:\1C_82_sql Ложить надо в \\192.168.2.254\backup SQL бакап имеет такого плана имя mag_backup_2016_04_23_223501_0446883.bak, в всех совпадает mag_backup_2016_04_23_2235*********.bak WINRAR лежит c:\program files\winrar\winrar.exe |
|
Отправлено: 12:57, 13-05-2016 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Создание bat файла c помощью другого bat файла | GODolubOFF | Скриптовые языки администрирования Windows | 11 | 03-01-2016 20:30 | |
CMD/BAT - переименование группы файлов с запросом начального номера и перемещение | kozikozi | Скриптовые языки администрирования Windows | 19 | 29-07-2014 19:31 | |
Интерфейс - [решено] Перемещение файла с помощью Меню Отправить | RogerUP | Microsoft Windows 7 | 7 | 16-01-2011 10:36 | |
CMD/BAT - [решено] Скрипт перемещение+переименование файла | Pyrocar | Скриптовые языки администрирования Windows | 2 | 30-08-2010 14:25 |
|