Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите с командами для 7zip (http://forum.oszone.net/showthread.php?t=204465)

Centrinar 10-04-2011 21:52 1655498

Помогите с командами для 7zip
 
[code]
"Data/7zip.exe" a Data/Test.7z Data\test.ini
[code]

Поидеи он должен упаковать файл test.ini а в итоге он пакует сразу всю папку Data? где ошибка?

amel27 11-04-2011 07:14 1655630

Цитата:

Цитата Centrinar
а в итоге он пакует сразу всю папку Data »

да нет, только указанный файл...
если не нужно сохранять путь к файлу, можно сделать целевую папку текущей:
Код:

pushd Data
7z.exe a Test.7z test.ini
popd

...или указать абсолютный путь к файлу вместо относительного:
Код:

Data\7z.exe a Data\Test.7z %~dp0Data\test.ini

Centrinar 11-04-2011 16:51 1655893

А какая команда добавляет файл в архив и удаляет оргинал из папки

amel27 11-04-2011 17:20 1655911

Цитата:

Цитата Centrinar
какая команда добавляет файл в архив и удаляет оргинал »

AFAIK средствами 7z никак - нужна отдельная команда:
Код:

pushd Data
7z.exe a Test.7z test.ini
del /a /f /q test.ini
popd


Centrinar 11-04-2011 17:26 1655916

И еще одни вопросик. Как зашифровать архив т.е. при установлении пароля что бы не возможно было просмотреть его содержимое

amel27 11-04-2011 17:43 1655929

Цитата:

Цитата Centrinar
зашифровать архив т.е. при установлении пароля что бы не возможно было просмотреть его содержимое »

Код:

pushd Data
7z.exe a Test.7z -psecret -mhe test.ini
del /a /f /q test.ini
popd


Iska 11-04-2011 18:36 1655949

Получается, что в справке (9.20):
читать дальше »
Цитата:

Цитата -m (Set compression Method) switch
7z
he=[off | on]
Enables or disables archive header encryption. The default mode is he=off.


ошибка? Ибо без указания атрибута работает как если бы был указан «…=on». Посмотрел в последней альфе — аналогично.

amel27 11-04-2011 18:52 1655959

Цитата:

Цитата Iska
The default mode is he=off. »

видимо, только если ключ не указан, если указан - on
мой пример тоже из справки, только к ключу -p:
Цитата:

7z a archive.7z -psecret -mhe *.txt

compresses *.txt files to archive.7z using password "secret". Also it encrypts archive headers (-mhe switch), so filenames will be encrypted.

Iska 11-04-2011 19:18 1655968

Получается, что так.

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

gora 11-04-2011 22:09 1656107

Iska, вот что ответил автор:
Цитата:

-m[switch]
always means
-m[switch]=on

default value - the value if switch is not specified at all.

Iska 12-04-2011 11:05 1656342

gora, спасибо, ясно. Он, случайно, не уточнил, относится ли сие только к данному параметру, или же данное поведение распространяется на любые подобные параметры?

gora 12-04-2011 11:45 1656384

Iska, он, как всегда, немногословен. Но я понял из ответа, что это единый принцип относящийся ко всем ключам (-m[switch]).

Centrinar 12-04-2011 20:39 1656745

А как обновить этот же архив, пиши команду
Код:

7z.exe u -t7z -bd -y Test.7z -psecret -mhe test.ini
Но он игнорирует

gora 12-04-2011 21:31 1656792

Цитата:

Цитата Centrinar
Но он игнорирует »

Что значит игнорирует?
Если файл test.ini новее имеющегося в архиве, то он заменяется (обновляется - становится новее)

PS
А что такое -bd ?

Centrinar 12-04-2011 21:44 1656806

Пардон, пароль не прав. указал. Все работает

sov44 10-01-2013 21:47 2063796

Подскажите ключ удаления пустых папок, образовавшихся после рекурсного удаления подпапок 55 из архива papka.7z командой D с ключом -r
7z.exe D "papka.7z" 55 -r

Foreigner 10-01-2013 22:53 2063826

sov44,
Попробуй так:
Код:

7z d papka.7z * -r -x!*\*.*

sov44 10-01-2013 23:54 2063842

Foreigner, благодарю за код, он действительно удаляет пустые папки. Методом "научного тыка" немного изменил, чтобы не удалялись файлы из корня архива
Код:

7z d papka.7z * -r -x!\*.*

SharkyEXE 19-02-2015 15:27 2473485

2 all
Всем здравствуйте.

Возможно или нет сделать так, чтобы пароль был прописан в зашифрованном виде?

Например, в этой команде
Код:

7z.exe a Test.7z -psecret test.ini
пароль прописан в явном виде, пароль secret

Я захожу на сайт http://www.sha1-online.com/
Ввожу secret
Выбираю sha-1
Появляется пароль e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4
Делаю команду
Код:

7z.exe a Test.7z -pe5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 test.ini
При распаковке архива Test.7z пароль надо вводить secret

Можно или нельзя из sha-1 кода
e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4
прийти к оригинальному паролю
secret
это другой вопрос

Спасибо.

gora 19-02-2015 15:52 2473502

Цитата:

Цитата SharkyEXE
При распаковке архива Test.7z пароль надо вводить secret »

Спорное утверждение! Пароль к архиву прописан
Цитата:

Цитата SharkyEXE
-pe5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 »

а не как не secret. Хеш пароля и сам пароль не взаимозаменяемы при упаковке и распаковке.
Цитата:

Цитата SharkyEXE
Можно или нельзя »

Нельзя.

SharkyEXE 19-02-2015 16:14 2473513

gora
Дело то вот в чем.

Взламывают мой ПК, воруют у меня файл *.cmd

*.cmd
Скрытый текст
Код:

"С:\7-Zip\7z.exe" a "C:\123.7z" "C:\Test\*.*" -psecret

В *.cmd файле у меня прописан пароль в явном виде secret для файла C:\123.7z
У меня воруют файл C:\123.7z
Вор спокойно распаковывает файл C:\123.7z с паролем secret

Если пароль будет в зашифрованном виде, типа
Скрытый текст
Код:

"С:\7-Zip\7z.exe" a "C:\123.7z" "C:\Test\*.*" -pe5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4

То вор, когда у меня сворует файл C:\123.7z, будет пытаться распаковать файл C:\123.7z с паролем e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4
Однако ему напишется, что пароль неправильный.
Вор не будет знать, чтобы распаковать файл C:\123.7z, ему надо перевести зашифрованный пароль e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 в нормальный вид secret
При этом вор может знает, может нет, что пароль e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 - это sha-1 алгоритм

Просто без обид, размещать в *.cmd файле пароль secret в явном виде - хуже не придумаешь.

Это как раздавать свой номер телефона направо-налево, а потому удивляться, почему на телефон приходят смс сообщения - от таксистов, от ювелирных магазинов и прочих купи-продай и не только заведений.

Может быть кто-нибудь знает способ создать архив с зашифрованным паролем при помощи *.cmd файла?
Чтобы пароль в *.cmd файле был прописан e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4, а для распаковки файла пароль надо вводить secret

Спасибо.

gora 19-02-2015 16:43 2473531

SharkyEXE, как вариант:
Код:

@Echo Off
:: Место хранения секретного файла (можно на флешке). Содержимое файла может быть любым,
:: в нем может быть осмысленный текст, который известен только Вам, тогда файл можно
:: создавать перед запуском батника и уничтожать его после работы

Set secretfile="N:\secret\kart.txt"

For /F "Skip=4 tokens=1-3" %%a In ('7z h -ba -scrcsha1 %secretfile%') Do Set psw=%%a& GoTo m1
:m1

Echo %psw%
:: дальше упаковка со сгенерированным паролем
pause


SharkyEXE 19-02-2015 18:49 2473577

gora
Спасибо за метод

А нельзя сделать так, чтобы упаковывалось с e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4, а распаковка была с secret?

Чтобы 7-zip при упаковке, пароль e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 считал как secret
Тогда при распаковке пароль придется вводить secret, а не e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4

gora 19-02-2015 19:15 2473586

Цитата:

Цитата SharkyEXE
Чтобы 7-zip при упаковке, пароль e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4 считал как secret »

Нет. ?-Zip такого не умеет, да и других архиваторов, которые это умеют, я не знаю. Откуда Вы вообще взяли, что такое возможно, не пойму!? :dont-know

sov44 19-02-2015 19:19 2473589

SharkyEXE, просто запомните пароль и вводите через set /p. Кроме вас его никто не будет знать :)

yurfed 19-02-2015 19:40 2473595

SharkyEXE, а может будет интересней запароленный архив ещё и закриптовать с паролем чем нибудь отдельно и не под SHA-1?

SharkyEXE 19-02-2015 19:49 2473599

Цитата:

Цитата gora
Нет. ?-Zip такого не умеет, да и других архиваторов, которые это умеют, я не знаю. Откуда Вы вообще взяли, что такое возможно, не пойму!? »

Да я просто поинтересовался, возможно такое или нет.
Цитата:

Цитата sov44
SharkyEXE, просто запомните пароль и вводите через set /p. Кроме вас его никто не будет знать »

Нужна автоматизация, запустил *.cmd файл, внутри *.cmd файла пароль зашифрован, на выходе получил архив, пароль от которого - расшифрованный пароль из *.cmd файла
Цитата:

Цитата yurfed
SharkyEXE, а может будет интересней запароленный архив ещё и закриптовать с паролем чем нибудь отдельно и не под SHA-1? »

Пароль должен быть зашифрованным + только автоматизация, ничего вручную нельзя вводить

yurfed 19-02-2015 19:58 2473602

Цитата:

Цитата SharkyEXE
только автоматизация, ничего вручную нельзя вводить »

А небольшую виртуалочку линуксовую ни к чему не подключенную и там держать пароли, не прокатит?

SharkyEXE 19-02-2015 20:08 2473605

Цитата:

Цитата yurfed
А небольшую виртуалочку линуксовую ни к чему не подключенную и там держать пароли, не прокатит? »

Это сложно для меня, при том что эту виртуальную машину своровали, у себя запустили, залезли куда-то в текстовый файл виртуальной машины и увидели пароль.

Iska 19-02-2015 20:19 2473609

SharkyEXE, хоть десять раз шифруйте — фокус не удастся. Максимум, что Вам можно посоветовать — заведите себе криптоконтейнер, например, TrueCrypt, и держите свои секретные пакетные файлы с открытыми паролями в нём. Вводить пароль на доступ к криптоконтейнеру будете один раз за сеанс при его монтировании (если, конечно, не настроите на автоматическое размонтирование по времени).

yurfed 19-02-2015 20:21 2473610

Цитата:

Цитата SharkyEXE
при том что эту виртуальную машину своровали »

Это как так? У вас имеется доступ к вашему ПК? Да и то, непонятно как её своровать, да ещё с хорошим паролем на все действия, вплоть до просмотра файлов.


Цитата:

Цитата Iska
например, TrueCrypt »

Хотел предложить его, но он платный. Такая идея была
Цитата:

Цитата yurfed
запароленный архив ещё и закриптовать с паролем чем нибудь отдельно и не под SHA-1? »


SharkyEXE 19-02-2015 20:32 2473614

Большое всем спасибо за помощь.
Да, Вы правы, такое не получится.

Iska 20-02-2015 06:44 2473699

Цитата:

Цитата yurfed
но он платный. »

С каких пор?!

sov44 10-04-2015 11:48 2494030

Подскажите с синтаксисом исключения подпапки при создании архива. К примеру, нужно упаковать папки folder1, foldder12, folder31. В папке folder12 есть подпапка test с файлами. Нужно исключить из архивации папку test c файлами.
В настоящее время у меня выполняются два этапа:
- создание полного архива
Код:

7z.exe a c:\out.7z folder1 folder12 folder31
- исключение из архива папки test с файлами
Код:

7z.exe d c:\out.txt -r test
Можно-ли объединить эти команды? Пробовал создание полного архива с ключом -x, но работа скрипта прерывается.
Код:

7z.exe a c:\out.7z folder1 folder12 folder31 -xr!test

gora 10-04-2015 11:59 2494037

Код:

7z.exe a c:\out.7z folder1 folder12 folder31 -xr!folder31\test

sov44 10-04-2015 12:48 2494066

gora, не получилось, работа скрипта прерывается. Имена реальных папок изменены на тестовые
Код:

start "Создание 7z архива" /wait Tools\7za.exe a C:\out.7z -m0=LZMA2 -mx=9 -mmt=2 folder1 folder12 folder31 file1.cmd file2.cmd -xr!folder31\test

gora 10-04-2015 13:00 2494067

Цитата:

Цитата sov44
Имена реальных папок изменены на тестовые »

Эээ... Нет, так не пойдет. Изменены не только имена, но и тип архиватора (автономный - урезанный, а не полный), его месторасположение (ибо ранее ни о какой папке Tool речи не было), а так же запуск через Start.
Раз с первого раза не смогли все правильно описать теперь подгоните все под мою строку, ибо я все проверил и все работает. Затем будете по шагам переходить к своей и выяснять почему Ваша не работает. Это научит ценить чужое время при постановке задачи.

sov44 10-04-2015 14:54 2494105

решено

sov44 10-12-2015 20:52 2583543

Полтергейст, не удаётся извлечь из фикса outexum2010-kb2760779-fullfile-x86-glb.exe файл *.msp. С другими обновами всё ок. В чём причина?
7zip v.15.12, Win7x86
Код:

@echo off
SetLocal enabledelayedexpansion

"c:\Program Files\7-Zip\7z.exe" e "%~dp0Updates\outexum2010-kb2760779-fullfile-x86-glb.exe" -o"%~dp0Unpack" *.msp
pause


gora 10-12-2015 21:17 2583553

Код:

@echo off
SetLocal enabledelayedexpansion

"c:\Program Files\7-Zip\7z.exe" e -tcab "%~dp0Updates\outexum2010-kb2760779-fullfile-x86-glb.exe" -o"%~dp0Unpack" *.msp
pause


Foreigner 10-12-2015 21:23 2583556

sov44, Там нет таких файлов (*.msp)

sov44 10-12-2015 21:46 2583566

Foreigner, есть. Распаковал с указанием типа архива, как подсказал gora.

Foreigner 10-12-2015 22:01 2583569

sov44, Понятно, я просто просмотрел:
Код:

7z l outexum2010-kb2760779-fullfile-x86-glb.exe


Время: 02:11.

Время: 02:11.
© OSzone.net 2001-