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

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

Ответить
Настройки темы
CMD/BAT - [решено] Добавить папку с файлами через 7za

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


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

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


Здравствуйте! нужно добавить папку с файлами в архив, папка находится типа: data/data/fufjf/efif3/folder/*.* , надо добавить именно папку folder и все файлы в ней, пробовал
Код: Выделить весь код
7za.exe a -tzip -mm=Deflate -mx=0 -mtc=off -r data.zip data/../folder/*.*
Но ничего не вышло
Код: Выделить весь код
7za.exe a -tzip -mm=Deflate -mx=0 -mtc=off -r data.zip file.txt
Так добавляет file.txt с полными путями, а надо только папку folder и в ней файл

Заранее спасибо.

Отправлено: 13:07, 19-08-2014

 

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


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

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


Цитата IT Shepherd:
7za.exe a archive.zip -r database\ »
Странно, но создаётся пустой архив

Код: Выделить весь код
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Scanning

Creating archive data.zip


Everything is Ok

Отправлено: 15:15, 19-08-2014 | #11



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

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


Ветеран


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

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


Цитата idlazarev_alex@vk:
Команда на извлечение: »
Результат:
Код: Выделить весь код
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18

Error:
Incorrect command line
И я не вижу в приложенном архиве папку «folder».

Отправлено: 15:50, 19-08-2014 | #12


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


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

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


Iska, та надпись была для примера, будут же различные пути к папке допустим database, мне она и нужна

Отправлено: 16:16, 19-08-2014 | #13


Ветеран


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

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


Цитата idlazarev_alex@vk:
Iska, та надпись была для примера, »
idlazarev_alex@vk, не нужно «для примера». Я задал вполне конкретные вопросы и предполагаю получить на них конкретные ответы, чтобы воспроизвести у себя Вашу ситуацию.

Отправлено: 16:24, 19-08-2014 | #14


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


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

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


Iska, ок:

Полный код распаковки:

Код: Выделить весь код
7za.exe E -y *.tar.gz >> log
md temp\
7za.exe X -y *.tar -o"temp" >> log
Логи сторонней программы:

Код: Выделить весь код
Arguments = x -y -o"C:\Program Files (x86)\ProgrammingMachines\SaveToGame\Temp" "C:\Program Files (x86)\ProgrammingMachines\SaveToGame\Temp\com.silk_paints-20140815-192436.tar"
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Processing archive: C:\Program Files (x86)\ProgrammingMachines\SaveToGame\Temp\com.silk_paints-20140815-192436.tar
Extracting  data\data\com.silk_paints\.
Extracting  data\data\com.silk_paints\.\shared_prefs
Extracting  data\data\com.silk_paints\.\shared_prefs\com.silk_paints_preferences.xml
Extracting  data\data\com.silk_paints\.\files
Extracting  data\data\com.silk_paints\.\files\gaClientId
Extracting  data\data\com.silk_paints\.\files\INSTALLATION
Extracting  data\data\com.silk_paints\.\databases
Extracting  data\data\com.silk_paints\.\databases\billing.db
Extracting  data\data\com.silk_paints\.\databases\billing.db-journal
Extracting  data\data\.external.com.silk_paints\.
Extracting  data\data\.external.com.silk_paints\.\cache
Everything is Ok
Folders: 6
Files: 5
Size:       34489
Compressed: 43008
tempFolders.Length > 0
realFoldLength = 1
7-Zip (A) 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
Scanning
Creating archive C:\Program Files (x86)\ProgrammingMachines\SaveToGame\data.zip
Compressing  databases\billing.db
Compressing  databases\billing.db-journal
Everything is Ok
Нужно запаковать папку database и все файлы в ней в отдельный data.zip архив через консоль. Архив тот же.
Путь к папке database будет постоянно меняться! т.е в каждом архиве разный путь к database

Последний раз редактировалось idlazarev_alex@vk, 19-08-2014 в 16:57. Причина: Добавил


Отправлено: 16:56, 19-08-2014 | #15


Ветеран


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

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


idlazarev_alex@vk, я хочу увидеть архив. Меня не интересуют ни «для примера», ни «кусок лога из программы», ни «логи сторонней программы». Меня интересует архив. Тот самый архив, в котором есть указанная папка, которая извлекается «в рандомную папку».

Цитата idlazarev_alex@vk:
т.е в каждом архиве разный путь к database »
Давайте образцы нескольких архивов. Я хочу это видеть.

Отправлено: 18:10, 19-08-2014 | #16


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


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

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


Вложения
Тип файла: gz com.silk_paints-20140815-192436.tar.gz
(1.5 Kb, 3 просмотров)
Тип файла: gz com.quickoffice.android-20140819-143452.tar.gz
(1.3 Kb, 3 просмотров)
Тип файла: gz com.ligq.ikey-20140819-143838.tar.gz
(1.1 Kb, 3 просмотров)

Iska, приложил 3 архива

Отправлено: 18:40, 19-08-2014 | #17


Ветеран


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

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


Ну, вот видите, как всё замечательно. И архивы теперь корректно распаковываются. И вместо невнятного «…типа: data/data/fufjf/efif3/folder/*.*» брюки превращаются мы видим вполне конкретные:
Код: Выделить весь код
\data\data\com.ligq.ikey\.\databases
\data\data\com.quickoffice.android\.\databases
\data\data\com.silk_paints\.\databases
И никаких «рандомных путей».

Итак, если я правильно понял суть Ваших сумбурных описаний, Вам надо извлечь из архива вида «*.tar.gz» содержимое папки «\data\data\XXXX\.\databases\*.*» и упаковать затем это извлечённое содержимое в новый архив, включая саму папку «databases», так? В предположении перечисленного верным — пробуйте:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

call :GetTemporaryName
md "%TemporaryName%"

for %%i in (*.tar.gz) do (
	"%ProgramFiles%\7-ZipA\7za.exe" e -o"%TemporaryName%" "%%~i"
	set sTar=%%~ni
	set sPath2Databases=%TemporaryName%\Root
	if not exist "!sPath2Databases!" md "!sPath2Databases!"
	if not exist "!sPath2Databases!\databases" md "!sPath2Databases!\databases"
	"%ProgramFiles%\7-ZipA\7za.exe" e -r -o"!sPath2Databases!\databases" "%TemporaryName%\!sTar!" "*\databases\*"
	"%ProgramFiles%\7-ZipA\7za.exe" a -r -t7z "%%~i.7z" "!sPath2Databases!\*"
	del /f /q "!sPath2Databases!\databases\*.*"
)
rd /q /s "%TemporaryName%"

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
rem Функция GetTemporaryName()
rem
rem Серый форум / CMD/BAT: генерация пути для временного файла или папки
rem (http://forum.script-coding.com/viewtopic.php?id=6259)
rem ==========================================================================
:GetTemporaryName
	setlocal enableextensions enabledelayedexpansion

:NextName
	set sTempName=%temp%\temp%random%.tmp

	if exist "%sTempName%" goto :NextName

	set sProcName=%~0

	endlocal & set %sProcName:~4%=%sTempName%
	exit /b 0
rem ==========================================================================
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:58, 20-08-2014 | #18



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как скопировать папку с файлами из одного места в другое? Pozia AutoIt 11 15-04-2015 12:57
Интерфейс - Немогу удалить папку с файлами Windows RE IDROID Microsoft Windows 7 6 17-01-2014 01:17
CMD/BAT - [решено] Удалить папку с файлами Miko Скриптовые языки администрирования Windows 14 22-02-2012 00:03
Блог - Как добавить в контекстное меню пункты “Копировать в папку” и “Переместить в папку” Vadikan Microsoft Windows 7 2 28-11-2010 22:09
[решено] SVN, как добавить папку в svn-репозиторий без вложенных в папку файлов? pingUIN Хочу все знать 1 03-11-2009 17:16




 
Переход