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

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

Ответить
Настройки темы
CMD/BAT - [решено] Извлечь из архива только определенную папку/определенный файл

Ветеран


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

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


Изменения
Автор: SharkyEXE
Дата: 13-07-2013
Здравствуйте.
Пожалуйста, если это возможно, напишите мне, как при помощи *.bat или *.cmd файла из архива UpdatePack-XPSP3-Rus-13.6.15.7z (Наборы - UpdatePack-XPSP3-Rus версия 13.6.15) в папку C:\1 извлечь только папку Addons с сохранением структуры папки Addons
То есть на выходе получаем папку C:\1, в которой находиться только папка Addons с сохранением структуры папки Addons. Больше ничего, кроме папки Addons в папке C:\1 не должно быть.
Спасибо.

Отправлено: 16:58, 13-07-2013

 

Ветеран


Contributor


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

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


Цитата Iska:
средствами самого sfx »
Если в архиве нет иных папок, кроме исходных для слияния, то вообще не вижу большого смысла в такой постановке задачи - при больших архивах время на разархивацию много больше, чем время на перемещение посредством move распакованного в общую папку на том же диске. Если есть иные папки, то и sfx-архив можно распаковать и 7zG.exe, конечно, тогда и смысл иметь sfx-архив теряется. Кстати, не сумел подавить запрос на определение целевой папки для разархивации при запуске екзешника sfx-архива

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 17:53, 09-08-2017 | #31



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

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


Аватара для mariolast

Ветеран


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

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


Суть сего в следующем.
Есть распакованные инсталляторы программы, 32 и 64 битные версии, для каждой свой. Лежат соотв. в папках x86 и x64. Размер каждой примерно 500Мб. С помощью sfx делается установка программы, определяется битность и после распаковки запускается инсталлятор либо из x64 либо из x86. Это все стандартно. Размер sfx инсталлятора составил 330Мб. Но еще задумка уменьшить размер sfx инсталлятора. Для это понаходил все одинаковые по содержимому, размеру и названию файлы, которые есть у обоих папках инсталлятора x86 и x64. И вынес их в отдельную папку Common. Получилось где то на 500Мб. Таким образом удалось уменьшить вес на 500Мб, так как удалил по 500Мб из x86 и x64 и создал одну папку Common на 500Мб. Таким образом в конечном sfx инсталляторе после создания получается где то 270Мб. Выигрыш в 60Мб и меньшее количество файлов в архиве, что положительно сказывается и на скорости распаковки. Теперь застопорился на том, как после запуска и распаковки инсталлятора в темповую папку обьединить папки скажем x86 и Common, потому как для запуска инсталлятора в папке ч86 ему надо дозаписать те 500Мб, которые перенес в папку Common.
Для создания инсталляторов пользуюсь InnoSetup, там это без проблем, что куда распаковать, но он не умеет так ужимать, мало параметров.
Думал что сам 7zip умеет определять одинаковые файлы и сжимать раз и записывать местоположение для распаковки. По разному игрался. Особо эффекта не дало, решил попробовать вот таким методом.

Отправлено: 20:32, 09-08-2017 | #32


Ветеран


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

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


mariolast, сначала переносим содержимое папки Common в папку разрядности системы, затем запуск исполнительного файла
Код: Выделить весь код
RunProgram="%%P:hidcon:cmd /c \"move Common\\* %%P\\\""
RunProgram="%%P\\install.exe"

Отправлено: 21:11, 09-08-2017 | #33


Аватара для mariolast

Ветеран


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

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


sov44, затык в том, что если в папке х86 есть папка 1 и в папке Common есть папка 1, то при переносе получаем Отказано в доступе.

Отправлено: 21:50, 09-08-2017 | #34


Аватара для mariolast

Ветеран


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

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


Пока смотрю в сторону AutoIT с его функцией DirMove ( "source dir", "dest dir" [, flag = 0 ] )
Там это делается без проблем за секунду. Но если что то можно придумать скриптом, буду рад за помощь,

Отправлено: 22:34, 09-08-2017 | #35



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - нужно извлечь из архива определенные файлы за текущую дату alek2012 Скриптовые языки администрирования Windows 0 20-06-2012 15:24
Доступ - Виснет ПК при заходе в определенную папку no_ok@vk Microsoft Windows 7 1 23-04-2012 12:22
Разное - Как извлечь фотографии из Архива поврежденного бекапа? illusionmgs Хочу все знать 6 24-01-2012 03:02
[решено] Настройка получения писем в определенную папку okshef Хочу все знать 7 12-03-2011 20:27
VBS/WSH/JS - Перемещение файлов в только, что созданную папку из контекстного меню. OSArev Скриптовые языки администрирования Windows 14 03-03-2011 22:08




 
Переход