|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Распаковка *.gz и перенос в другую папку |
|
CMD/BAT - [решено] Распаковка *.gz и перенос в другую папку
|
Новый участник Сообщения: 47 |
Всем здравствуйте.
Если кому не сложно, не могли бы подсказать код для батника, который выполнял бы следующее: - распаковывал первый архив GeoLiteCity.dat.gz (в котором файл GeoLiteCity.dat) - переносил файл из C:\1\GeoLiteCity.dat в D:\GeoLiteCity.dat - распаковывал второй архив GeoIP.dat.gz (в котором файл GeoIP.dat) - переносил файл из C:\1\GeoIP.dat в D:\GeoIP.dat В системе стоит WinRar Буду ооочень благодарен ![]() |
|
Отправлено: 10:56, 16-03-2018 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать @Echo off Set "Arc="%ProgramFiles%\WinRar\Rar.exe" e -y" Call :UnArc "Z:\Soft_Arc\GeoLiteCity.dat.gz" "GeoLiteCity.dat" "Z:\" Call :UnArc "Z:\Soft_Arc\GeoIP.dat.gz" "GeoIP.dat" "Z:\" GoTo :Eof :UnArc If Not Exist %1 (Echo %1 Not Exist &Exit /B 404) Pushd %3 ||(Echo %3 &Exit /B 404) %Arc% %1 %2 Set /A Out=%ErrorLevel% Popd Exit /B %Out% Попутно вопросы: В архиве 1 файл? Почему Вы извлекаете файл в C:\1\GeoIP.dat а не сразу в D:\ |
------- Отправлено: 12:39, 16-03-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать megaloman
1. В каждом архиве по одному файлу 2. У меня стоит веб сервер на диске С, т.е. папка доменов на С. У меня система хитрая вышла: а) создан php-скрипт, который качает базы GeoIP (а базы эти в *.gz-рахивах) б) через cron этот скрипт запускается, чтобы файлы скачались в) но файлы нужно хранить в 4 разных папках, которые расположены на диске D Т.е. файлы нужно скачать, распаковать и в таком виде уже сунуть на диск D Хм... кстати, я не предусмотрел этого в топике изначально - возможно ли сделать так, чтобы было несколько путей, куда файлы копировались бы? То есть два этих файла надо копировать сразу в: D:\1, D:\2, D:\3 и D:\4 |
Отправлено: 12:53, 16-03-2018 | #3 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать biffick,
Для начала, работает ли мой батник, например, для случая одной выходной папки?
@Echo off Set "Arc="%ProgramFiles%\WinRar\Rar.exe" e -y" Call :UnArc "Z:\Soft_Arc\GeoLiteCity.dat.gz" "GeoLiteCity.dat" "Z:\1\" Call :UnArc "Z:\Soft_Arc\GeoIP.dat.gz" "GeoIP.dat" "Z:\1\" GoTo :Eof :UnArc If Not Exist %1 (Echo %1 Not Exist &Exit /B 404) Pushd %3 ||(Echo %3 &Exit /B 404) %Arc% %1 %2 Set /A Out=%ErrorLevel% Popd Exit /B %Out% |
------- Отправлено: 13:04, 16-03-2018 | #4 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
||
Отправлено: 14:48, 16-03-2018 | #5 |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось biffick, 16-03-2018 в 23:06. Причина: Дописал Отправлено: 23:03, 16-03-2018 | #6 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 23:13, 16-03-2018 | #7 |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать megaloman, да, так распаковал и перенёс.
Можно сделать схему такую: Файл C:\GeoIP.dat -> переносить в папку C:\papka\ Файл C:\GeoLiteCity.dat -> переносить в папку C:\papka\ Файл C:\GeoIP.dat -> переносить в папку C:\papka_p\ Файл C:\GeoLiteCity.dat -> переносить в папку C:\papka_p\ Файл C:\GeoIP.dat -> переносить в папку C:\papka_r\ Файл C:\GeoLiteCity.dat -> переносить в папку C:\papka_r\ Файл C:\GeoIP.dat -> переносить в папку C:\papka_e\ Файл C:\GeoLiteCity.dat -> переносить в папку C:\papka_e\ (пути и названия файлов и папок, естественно, сам поменяю) Т.е. нужно именно сделать так, чтобы я список сам мог менять. В общем, нужно переносить два этих распакованных файла по разным папкам с заменой без подтверждения. |
Отправлено: 23:30, 16-03-2018 | #8 |
Ветеран Сообщения: 2732
|
Профиль | Отправить PM | Цитировать biffick,
@Echo off Set "Arc="%ProgramFiles%\WinRar\WinRar.exe" e -y" Call :UnArc "Z:\Soft_Arc\GeoLiteCity.dat.gz" "GeoLiteCity.dat" "Z:\1\" "Z:\2\" "Z:\3\" "Z:\4\" Call :UnArc "Z:\Soft_Arc\GeoIP.dat.gz" "GeoIP.dat" "Z:\1\" "Z:\2\" "Z:\3\" "Z:\4\" GoTo :Eof :UnArc If Not Exist %1 (Echo %1 Not Exist &Exit /B 404) Md %3 2>nul Pushd %3 %Arc% %1 %2 Set /A Out=%ErrorLevel% Popd If Not %Out%==0 Exit /B %Out% Set "FName=%~3\%~2" :Begin Shift /3 If "%~3"=="" Exit /B %Out% Md %3 2>nul Copy "%FName%" %3 >nul Set /A Out+=%ErrorLevel% GoTo :Begin Exit /B %Out% |
------- Отправлено: 23:41, 16-03-2018 | #9 |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать megaloman, да, всё прекрасно отрабатывает! Большое Вам спасибо!
|
Отправлено: 00:09, 17-03-2018 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Распаковка ВСЕХ архивов в папку с тем же именем | death7lord | Скриптовые языки администрирования Windows | 9 | 11-01-2020 15:21 | |
Перенаправление в другую папку | binx | Вебмастеру | 0 | 15-11-2014 23:45 | |
PowerShell - [решено] Перенос ящиков в другую базу | pogo | Скриптовые языки администрирования Windows | 5 | 15-09-2014 15:14 | |
2008 - Чем примонтировать сетевую папку в другую папку? | Actor | Windows Server 2008/2008 R2 | 9 | 20-01-2014 21:58 | |
VBS/WSH/JS - перенос НЕ открытых документов в другую папку | SaTaNick | Скриптовые языки администрирования Windows | 5 | 10-12-2009 15:15 |
|