Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Помощь в автоматической разархивации

Ответить
Настройки темы
CMD/BAT - Помощь в автоматической разархивации

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день. Есть такая задача:

На определнном ресурсе лежит множество zip архивов, в каждом из которых лежат папки с файлами. Периодически имена папок (но не файлов в них) повтряются Нужен батник, который будет поочередно распаковывать все архивы в текущую директорию, автоматически перезаписывая данные (т.е. без уведомления). После распаковки все архивы удаляются. Прошу помочь.

Отправлено: 12:23, 07-06-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


В каком порядке производить извлечение?

Отправлено: 13:45, 07-06-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Мне тоже нужна помощь в этом, по идее удаления архивов это прессет -df

Отправлено: 14:26, 07-06-2013 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


RodionRuRu, Вам адресую тот же вопрос.

Отправлено: 20:55, 07-06-2013 | #4


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
В каком порядке производить извлечение?
Без разницы, главное, чтобы все архивы поочередно извлеклись.

Отправлено: 11:20, 10-06-2013 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата zerius:
Без разницы, »
Не бывает «без разницы» для озвученных условий.

Если содержимое одноимённых файлов разнится — порядок извлечения имеет существенное значение. Если содержимое файлов одинаково — какой смысл перезаписывать файлы, вместо того, чтобы пропускать их?

У Вас какой из этих двух вариантов?


Для «порядок без разницы, перезаписывать файлы»:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in ("E:\Песочница\0272\*.zip") do (
	<nul set /p sTempVar=%%~fi :
	>nul "%ProgramFiles%\7-Zip\7z.exe" x -aoa "%%~fi" && (
		echo OK
		del /f /q "%%~fi"
	) || (
		echo Failure
	)
)

endlocal
exit /b 0
Для «порядок без разницы, пропускать файлы»:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in ("E:\Песочница\0272\*.zip") do (
	<nul set /p sTempVar=%%~fi :
	>nul "%ProgramFiles%\7-Zip\7z.exe" x -aos "%%~fi" && (
		echo OK
		del /f /q "%%~fi"
	) || (
		echo Failure
	)
)

endlocal
exit /b 0

Отправлено: 14:45, 10-06-2013 | #6


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Пропускать не надо. Суть в том, что папки уже существуют на ресурсе, те, которые в архивах, имею такие же имена. При разархивации система будет спрашивать перезапись. У меня правда ни тот, ни другой скрипты не работают.

Пардон, работает.

Отправлено: 15:35, 10-06-2013 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


zerius, так какой у Вас вариант из двух перечисленных выше:
Цитата Iska:
Если содержимое одноимённых файлов разнится — порядок извлечения имеет существенное значение. Если содержимое файлов одинаково — какой смысл перезаписывать файлы, вместо того, чтобы пропускать их? »
?

Отправлено: 15:58, 10-06-2013 | #8


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
zerius, так какой у Вас вариант из двух перечисленных выше:
Цитата Iska:
Если содержимое одноимённых файлов разнится — порядок извлечения имеет существенное значение. Если содержимое файлов одинаково — какой смысл перезаписывать файлы, вместо того, чтобы пропускать их? »
?
У меня первый. Только загвостка возникла, судя по всему за текущую директорию принимается папка, где лежит скрипт. Можно то же самое, что в первом варианте, только с экстрактом не в текущую, а другую директорию?

Отправлено: 17:00, 10-06-2013 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата zerius:
судя по всему за текущую директорию принимается папка, где лежит скрипт. »
Нет. Просто, если Вы запускаете пакетный файл из Проводника двойным щелчком — текущим каталогом для командного процессора будет именно каталог, где содержится этот пакетный файл. Если Вы запускаете пакетный файл из любого произвольного каталога — с указанием относительного или абсолютного пути к пакетному файлу — то текущим каталогом так и останется тот, что был установлен в командном процессоре, ярлыке и т.п.

Цитата zerius:
Можно то же самое, что в первом варианте, только с экстрактом не в текущую, а другую директорию? »
Добавьте параметр:
Цитата:
-o (set Output directory) switch
Specifies a destination directory where files are to be extracted.
Например:
Код: Выделить весь код
…
>nul "%ProgramFiles%\7-Zip\7z.exe" x -aoa -oc:\Temp "%%~fi" && (
…

Отправлено: 23:11, 10-06-2013 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Помощь в автоматической разархивации

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипт автоматической установки драйверов batyaPS AutoIt 0 05-07-2012 03:17
Интернет - Скрипт автоматической настройки IE Kirill NN Microsoft Windows 2000/XP 3 18-03-2008 15:27
Проблема автоматической установки драйверов t0lstiy Автоматическая установка Windows 2000/XP/2003 3 13-08-2006 16:11
Вопрос по автоматической установке urri123 Автоматическая установка Windows 2000/XP/2003 8 03-08-2005 11:57




 
Переход