Ru-Board.club
← Вернуться в раздел «Программы»

» 7-Zip / 7z (часть 2)

Автор: Skif_off
Дата сообщения: 04.03.2013 16:36
Victor_VG
Если

Цитата:
это код ошибки выданный скорее всего плагином.

, то при чем тут

Цитата:
неизвестно что в своём коде Гислер намутил.

?
Исходники MultiArc доступны и Гислер не автор плагина.

Вообще, если речь о TC и MultiArc, то при чем тут 7-Zip? Есть тема Multiarc плагины и аддоны для FAR и Total Commander.
Автор: T2008
Дата сообщения: 04.03.2013 21:59
Всё, проблема решена.
Как оказалось, нужно заменить один параметр в MultiArc.ini.
Что он делает и почему именно так - не понимаю, зато всё работает.
Вышел анализируя разные конфиги, методом тыка.
Может кому пригодится:
Было: ExtractWithPath=%P x -y {%S} %AQA @%LQ
Стало: ExtractWithPath=%P x -y -scsDOS %AQA @%LQ
Автор: Alex_Piggy
Дата сообщения: 04.03.2013 22:34
Добрый вечер, T2008

Цитата:
Скорее всего, как и утверждает xChe, проблема с кодировкой (ищет название первого файла в неправильной кодировке, не находит и вываливается с ошибкой ... смотрите файл после @ и какое у него содержимое ...). Поиграйтесь с параметрами ключа "-scs".

%S лучше верните на место (после -scsDOS). Это переменная с дополнительными параметрами (если таковые имеются в TC Multiarc).
Вы ему указали, что файл-список не в CP1251 (Win) кодировке, а в CP866 (DOS).
Автор: T2008
Дата сообщения: 04.03.2013 22:59
Alex_Piggy

Если вставить это имя (КОМПАС-3D V14.exe) через буфер обмена в текстовый файл, то при ANSI-кодировке я вижу нормальные буквы, а в досовской ASCII вижу кракозябли. Что попало...
Хотя может это причуды консольного 7za.exe - может он временный список файлов архива создаёт в досовской кодировке?

А какой параметр (взамен -scsDOS) можно ещё попробовать поставить?
Автор: xChe
Дата сообщения: 04.03.2013 23:19
T2008

Цитата:
7za.exe - может он временный список файлов архива создаёт в досовской кодировке?

Я думаю, он использует ту кодировку, которая и задаётся ключом -scs, но что-то сомневаюсь, что Total Commander передаёт списки файлов в ASCII...
У вас небось после добавления этого -scsDOS - файлы с русскими именами вообще перестанут извлекаться из архивов.

ЗЫ: Во всяком случае для FreeArc архивов в multiarc.ini прямо прописано -sclANSI
Автор: Alex_Piggy
Дата сообщения: 04.03.2013 23:35
T2008
Что для одного кракозябли, для другого - нормальный текст. И наоборот.
Скорее причуды Windows - у нее по умолчанию консоль работает в CP866. А 7z (если не указано конкретно - у Вас в строке "List=%P -r0 l %AQA") выдает в кодировке консоли.
RTFM, а? "-scs{UTF-8 | WIN | DOS}"

xChe

Цитата:
У вас небось после добавления этого -scsDOS - файлы с русскими именами вообще перестанут извлекаться из архивов.

Наоборот, начнут.
IMHO, TC Multiarc форк/клон FAR Multiarc. Multiarc в FAR тупо парсит вывод "7z l".
А поскольку файловая система Windows работает в CP866, списки файлов с -scsDOS будут нормально/привычно получатся и обрабатыватся.
Проверить - добавить "-sccWIN" в строку
List=%P -r0 l %AQA
и посмотреть, читаемы ли будут русские имена в архивах. В FAR - становятся нечитаемыми.
Насчет FreeArc - не знаю. В последних версиях (0.67. "\Addons\TotalCommander MultiArc plugin\freearc.addon" в папке FreeArc ) вообще "-sclUTF-8" прописано. Но что-то я в сомнениях...
Автор: T2008
Дата сообщения: 05.03.2013 00:23
Alex_Piggy

ExtractWithPath=%P x -y -scsDOS %AQA @%LQ
Замена -scsDOS на -scsWIN приводит к тому, что файл с русским именем перестаёт распаковываться.


Цитата:
Проверить - добавить "-sccWIN" в строку
List=%P -r0 l %AQA
и посмотреть, читаемы ли будут русские имена в архивах.

Там не опечатка ли, но поведение такое.
После добавления "-sccWIN" русские имена не читаются,
а после добавления "-scsWIN" - читаются правильно, точно так как и вообще без этого параметра.
Автор: Victor_VG
Дата сообщения: 05.03.2013 03:00
T2008

Ну, коли это клон фаровского МА, то тут всё проще вот [more=расшифровка параметров его командных строк];If custom_user.ini exists, it will extend and override settings in this file
;
;[Section name]
; use format name here
;TypeName
; optional parameter, is retained for compatibility purposes.
; Allows to override format name, defined in the section name.
;ID (optional)
; archive ID (2-digit hex numbers delimited with spaces)
;IDOnly (optional)
; if 1, extension is ignored and only ID is used to detect archive type.
; Otherwise both extension and ID (if present) are used.
;IDPos (optional)
; ID position in archive. If not present, ID will be searched
; in starting part of archive (see TechInfo #63).
;Extension
; archive format extension (without dot).
;List
; command to produce listing. It will be appended with an archive name
; It may also contain variables %%A with optional modifiers Q, q, W, P, S
; In this case archive name will not be appended.
;Errorlevel (optional)
; listing accepted only if errorlevel less than specified.
;IgnoreErrors (optional)
; if nonzero, archiver commands exit code will be ignored.
; Use with caution.
;Start (optional)
; any part of line in listing after which processing is started.
; If text started from '^', it will be compared from second symbol
; with lines beginning. Otherwise text looked anywhere in lines.
;End (optional)
; any part of line in listing to stop processing.
; If text starts from '^', it will be compared from second symbol
; with lines beginning. Otherwise text looked anywhere in lines.
;Format0 ... FormatN
; Listing format:
; n - file name
; . - remove trailing spaces from file name and append name with dot
; z - unpacked size
; c - file description
; p - packed size
; d - day
; t - month
; TTT - three letters month name (Jan, Feb, Mar, ...)
; y - year
; h - hours
; H - hours modifier letter (a - a.m. time, p - p.m. time)
; m - minutes
; s - seconds
; a - attributes
; * - skip until first space or end of line
; b - day of last access
; v - month of last access
; e - year of last access
; x - hours of last access
; l - minutes of last access
; k - seconds of last access
; j - day of creation
; g - month of creation
; f - year of creation
; o - hours of creation
; i - minutes of creation
; u - seconds of creation
; r - CRC (hex)
; C - chapters info
; (<digital parameters>) - optional digits, some or all digits may be missing
;IgnoreString0 ... IgnoreStringN (optional)
; do not process these strings
; If text starts from '^', it will be compared from second symbol
; with lines beginning. Otherwise text looked anywhere in lines.
;
;Other items describe archive commands
;
; The following variables may be used:
;
; %%A - Archive name.
;
; %%a - Short archive name.
;
; %%W - Temporary folder including the terminating slash.
;
; %%P - Password.
;
; %%R - Current archive folder.
;
; %%L - Filelist name. Filelist is the file containing names of files
; to be processed by the external archiver.
;
; %%l - Filelist with short file names.
;
; %%F - Names of one or more files to be processed. If all names
; cannot be placed in a single string, the archiver will be
; executed several times until all file names are exhausted.
; By default maximum total command length is 127, but you can
; specify it directly after %%F, for example %%F512.
; Variable %%F should be used only if the destination archiver
; does not support filelists.
;
; %%f - The name of a single file to process. The archiver will be
; executed several times until all file names are exhausted.
; This variable should be used only if the destination archiver
; does not support filelists or multiple file names on
; the command line.
;
; %%E<errorlevel> - maximum acceptable command errorlevel.
; For example, %%E2 indicates that errorlevels 0, 1 and 2
; are acceptable. This variable may be specified in any place
; of command. If it is absent, only errorlevel 0 is considered
; as successful.
;
; %%S - Place in the command line to insert additional switches,
; specified in the second string of "Add" dialog. If this
; variable is absent, switches are added to end of command
; line.
;
; Variable modifiers Q, q, S, M, N, *, W, P can be used to change
;file names format details:
;
; 'Q' - quote names with spaces;
; 'q' - quote all names;
; 'S' - use '/' instead of '\' in pathnames;
; 'M' - transfer folder names to archiver as 'foldername\*.*';
; 'N' - transfer folder names to archiver as 'foldername';
; '*' - use '*' mask to select all files. This modifier
; overrides "All files mask" parameter for single
; archiver command;
; 'W' - use name only, without path;
; 'P' - use path only, without name;
; 'A' - use ANSI encoding.
;
; These modifiers may be specified immediately after %%F, %%f, %%L
;or %%l variables without spaces. 'P' and 'A' also may be used with
;%%A and %%a. Several modifiers are allowed, for example %%LMN or
;%%F*QSN128 are valid. If neither 'M' nor 'N' modifier is specified,
;'N' is assumed. If both 'M' and 'N' are specified, both 'foldername'
;and 'foldername\*.*' will be transferred to archiver.
;
; If a part of the external archiver command string is enclosed
;in { } braces, it will be added to the resulting string only
;if this part contains at least one non-empty variable
;from those described above.
;
; If an external archiver does not support a particular command,
;leave the corresponding string blank.
;
; Regular expressions notice.
;
;Now regular expressions can be used in parameters 'FormatX', 'IgnoreStringX',
;'Start', 'End'. Regular expression are parsed by PCRE library
;(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/) which recognizes
;Perl5-compatible syntax. To specify that pattern should be matched as regular
;expression, enclose it in slashes ('/'). The following regexp flags can be
;used (if corresponding characters are placed after closing slash):
; i - ignore case
; x - extended (use explaining spaces)
; m - multiline
; s - "." matches new line characters also ('\n', '\r')
;
;When using regexps in 'FormatX' parameter, named strings are used to
;extract information from listing lines. The following field names are
;available:
; name - file name with relative path (leading and trailing spaces
; are trimmed)
; description - file description
; size - unpacked file size in bytes (non-digit characters are ignored
; in this and all other numeric fields)
; packedSize - packed file size in bytes
; attr - file attributes (A - archive, R - readonly, S - system, C -
; compressed, H - hidden, D - directory)
; cYear, cDay, cMonth, cHour, cMin, cSec - creation time
; mYear, mDay, mMonth, mHour, mMin, mSec - modification time
; mAMPM, mMonthA - extended time fields for modification time
; aYear, aDay, aMonth, aHour, aMin, aSec - access time
; CRC - 32 bit file Cyclic Redundancy Checksum
;
;------------------------------------------------------------------------
;Several examples of new syntax:
;
;to parse the following listing:
;>>>
; Volume in drive D is work
; Volume Serial Number is xxxx-xxxx
;
; Directory of D:\works\MultiArc\final\Formats
;
;15.11.2004 07:15 <DIR> .
;15.11.2004 07:15 <DIR> ..
;14.11.2004 00:46 5 632 Ace.fmt
;14.11.2004 00:46 4 608 Arc.fmt
;14.11.2004 00:46 6 656 Arj.fmt
;14.11.2004 00:46 6 144 Cab.fmt
;15.11.2004 06:07 56 832 Custom.fmt
;15.11.2004 07:14 1 551 custom.ini-re
;15.11.2004 07:11 54 344 Formats.jkr
;14.11.2004 00:46 4 608 Ha.fmt
;14.11.2004 00:46 6 144 Lzh.fmt
;15.11.2004 07:15 0 out
;14.11.2004 00:46 6 144 Rar.fmt
;14.11.2004 00:46 9 216 TarGz.fmt
;14.11.2004 00:46 6 656 Zip.fmt
; 13 File(s) 168 535 bytes
; 2 Dir(s) 37 840 883 712 bytes free
;<<<
;the following settings can be used:
;
;Start="/^ Directory of/"
;End="/File\(s\)/"
;Format0="/^(?P<cDay>\d+).(?P<cMonth>\d+).(?P<cYear>\d+)\s+ (?P<cHour>\d+)?P<cMin>\d+)\s+(?P<packedSize>[\d\xff]+)\s(?P<name>.*?)\s*$/"
;
;
;these settings:
;
;Start="/^..reading directory/"
;End="/^..listing completed/"
;Format0="/^[^\|]*\|(?P<size>[^\|]+)\|(?P<attr>[^\|]+)\|\s+(?P<name>.*?)\s*$/"
;IgnoreString0="/^---- ---- ---- ----/"
;
;can be used to parse the following kind of listing:
;>>>
;jkRes utility version 002
; pack/unpack tool to work with jkRes resource bundles
;
;..listing files from resource bundle
;..reading directory...12 items found
;---- ---- ---- ----
; zlib | 5632 | A.... | Ace.fmt
; zlib | 4608 | A.... | Arc.fmt
; zlib | 6656 | A.... | Arj.fmt
; zlib | 6144 | A.... | Cab.fmt
; zlib | 56832 | A.... | Custom.fmt
; zlib | 4608 | A.... | Ha.fmt
; zlib | 6144 | A.... | Lzh.fmt
; zlib | 6144 | A.... | Rar.fmt
; zlib | 9216 | A.... | TarGz.fmt
; zlib | 6656 | A.... | Zip.fmt
; zlib | 13012 | A.... | Custom.ini
; zlib | 1072 | A.... | custom.ini-re
;---- ---- ---- ----
;..listing completed
;..done
;<<<[/more]. Эти же ключи используются и в командных строках его форматок (заданы в исходниках). Может и пригодится для расшифровки параметров ТС МА. В фар его давно уже нет, а сейчас и FTP плагин заменили на более универсальный NetBox.

Добавлено:
Возможно что архив обновляли через криво настроенную консоль и кодовые страницы имён в нём перепутаны, особенно если его создавали в CP-1251/UTF-8/UTF-16 LE, а обновили в DOS. Тогда часть файлов получит интересные имена. Для p7zip (UNIX версия 7-Zip) мне такое попадалось, но он это обрабатывает без ошибок.
Автор: Bulat_Ziganshin
Дата сообщения: 05.03.2013 10:37
это обсуждение было бы гораздо конструктивней с теми кто разбирается в TC MA

я не особый спец по нему, но это FAR MA - клон TC-шного с расширенными возможностями. по умолчанию файллист передаётся в 866-й кодировке, поскольку в те давние времена большинство архиваторов были досовскими. в FAR есть возможность переключить файллист на ANSI-кодировку, возможно здесь она есть тоже

в freearc команда распаковки прописана сейчас так:

Extract="%P e -y --noarcext -sclANSI -- %AQA @%LA"

обратите внимание на последний параметр. с другой стороны, поскольку имена файлов берутся из консольного вывода, а он всё равно в cp866, то наверно есть смысл использовать именно её - без лишнего перекодирования
Автор: Alex_Piggy
Дата сообщения: 05.03.2013 11:20
Добрый день
Bulat_Ziganshin
По поводу FreeArc - кусочек freearc.addons из версии 0.67 Portable.
[more]

Код:
List="%P v --noarcext -- %AQA"
Format0="yyyy tt dd hh mm ss aaaaaaa zzzzzzzzzzzzzzz ppppppppppppppp rrrrrrrr nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn"
Start="^--"
End="^--"
Test="%P t --noarcext -sclANSI -- %AQA"
Add="%P a {-ap%RA} --noarcext -sclUTF-8 {%S} -- %AQA @%LA"
Move="%P m {-ap%RA} --noarcext -sclUTF-8 {%S} -- %AQA @%LA"
Extract="%P e -y --noarcext -sclUTF-8 -- %AQA @%LA"
ExtractWithPath="%P x -y --noarcext -sclUTF-8 -- %AQA @%LA"
Delete="%P d --noarcext -sclUTF-8 -- %AQA @%LA"
Автор: Bulat_Ziganshin
Дата сообщения: 05.03.2013 11:31

Цитата:
По поводу FreeArc

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

собственно все консольные архиваторы, не только досовские, но и виндовые, должны выдавать листинг архива в DOS codepage, поскольку она является стандартной для виндовой консоли. поскольку TC является GUI-программой, то для отображения содержимого архивов он должен перекодировать эти строки в ANSI codepage, и вероятно затем перекодирует их назад в DOS codepage при создании списка обрабатываемых файло

Добавлено:

Цитата:
Почему-то запомнил, что FAR 1.0 включал Multiarc практически в нынешнем виде (тогда не было плагинов и он назывался просто Archiver (FAR)).


а мне почему-то запомнилось что ещё до первой версии, году в 95/96-м были и плагины и нынешнее название
Автор: Victor_VG
Дата сообщения: 06.03.2013 00:39
Bulat_Ziganshin

И кстати я так же помню что когда впервые лет двадцать тому назад увидел Фар МА так уже был, и вроде даже не он один.

Я думаю, что у Т2008 скорее всего локали сбиты - в таком случае можно и подвоха ждать. По моему мы все этот момент как возможную причину упускаем ожидая что локаль в данной системе не имеет ошибок. А если виновата как раз она? Выходит мы зря теряем время проверяя не то и не там?
Автор: VU Irvine
Дата сообщения: 07.03.2013 14:55
использую 7z926-x64 с ключом u (для обновления файлов архива)
недавно, как понадобились файлы из архива - глянул - архив с новой датой, а файлы в нем - самые первые и не обновляются...
команда примерно такая:
"C:\Program Files\7-Zip\7z.exe" u backup.7z d:\backup -ssw -mx

версия, может глючная? или я?
Автор: GORA2
Дата сообщения: 07.03.2013 15:15

Цитата:
версия, может глючная?

Да, в ней был баг и автор ее срочно обновил до 9.27

Нашел у себя в записях:

Цитата:
Версия 7-Zip 9.26 alpha может выдавать сообщения об ошибке (при распаковке\тестировании) в архивах с методом LZMA2 (созданных как версией 9.25, так и версией 9.26), хотя версия 9.25 этих ошибок не находит.
Возможно и с ключом u были баги, но я с ним не тестировал.
Автор: AftarJjet
Дата сообщения: 16.03.2013 01:17
Пытаюсь, с помощью обсуждаемой проги большое кол-во файлов в tar поместить. Чтобы потом сжать его.
Операция идет очень медленно! Скорость 1,5 Mb/с. ЧЗХ? Как ускорить?
Может, есть под более вменяемый порт под винду?

Добавлено:
Есть какие-то ключи для tar?
Автор: Victor_VG
Дата сообщения: 16.03.2013 02:42
AftarJjet

Под tar их полно, но самый простой вызов для данного случая с использованием GNU Tar - tar -cfrSJ <tarnall_name> ./* на выжоде получим <tarball_name>.tar.bz2

а давать такую команду 7-zip или любому иному кроме самого тар архиватора я бы не стал - дров наломают.

[more=Ключи для команды tar]Usage: tar [-AcdrtuxGnSkUWOmpsMBiajzZJhPlRvwo?] [-g FILE] [-f ARCHIVE]
[-F NAME] [-L NUMBER] [-b BLOCKS] [-H FORMAT] [-V TEXT] [-I PROG]
[-C DIR] [-K MEMBER-NAME] [-N DATE-OR-FILE] [-T FILE] [-X FILE]
[--catenate] [--concatenate] [--create] [--diff] [--compare]
[--delete] [--append] [--list] [--test-label] [--update]
[--extract] [--get] [--check-device] [--listed-incremental=FILE]
[--incremental] [--ignore-failed-read] [--seek]
[--no-check-device] [--occurrence[=NUMBER]]
[--sparse-version=MAJOR[.MINOR]] [--sparse] [--keep-old-files]
[--keep-newer-files] [--no-overwrite-dir] [--overwrite]
[--overwrite-dir] [--recursive-unlink] [--remove-files]
[--unlink-first] [--verify] [--ignore-command-error]
[--no-ignore-command-error] [--to-stdout] [--to-command=COMMAND]
[--atime-preserve[=METHOD]] [--delay-directory-restore]
[--group=NAME] [--mode=CHANGES] [--mtime=DATE-OR-FILE] [--touch]
[--no-delay-directory-restore] [--no-same-owner]
[--no-same-permissions] [--numeric-owner] [--owner=NAME]
[--preserve-permissions] [--same-permissions] [--preserve]
[--same-owner] [--preserve-order] [--same-order] [--file=ARCHIVE]
[--force-local] [--info-script=NAME] [--new-volume-script=NAME]
[--tape-length=NUMBER] [--multi-volume] [--rmt-command=COMMAND]
[--rsh-command=COMMAND] [--volno-file=FILE]
[--blocking-factor=BLOCKS] [--read-full-records] [--ignore-zeros]
[--record-size=NUMBER] [--format=FORMAT] [--old-archive]
[--portability]
[--pax-option=keyword[[:]=value][,keyword[[:]=value]]...] [--posix]
[--label=TEXT] [--auto-compress] [--use-compress-program=PROG]
[--bzip2] [--lzma] [--no-auto-compress] [--gzip] [--gunzip]
[--ungzip] [--compress] [--uncompress] [--xz] [--lzop]
[--add-file=FILE] [--backup[=CONTROL]] [--directory=DIR]
[--exclude=PATTERN] [--exclude-caches] [--exclude-caches-all]
[--exclude-caches-under] [--exclude-tag=FILE]
[--exclude-tag-all=FILE] [--exclude-tag-under=FILE] [--exclude-vcs]
[--dereference] [--hard-dereference] [--starting-file=MEMBER-NAME]
[--newer-mtime=DATE] [--no-null] [--no-recursion] [--no-unquote]
[--null] [--newer=DATE-OR-FILE] [--after-date=DATE-OR-FILE]
[--one-file-system] [--absolute-names] [--recursion]
[--suffix=STRING] [--files-from=FILE] [--unquote]
[--exclude-from=FILE] [--strip-components=NUMBER]
[--transform=EXPRESSION] [--xform=EXPRESSION] [--anchored]
[--ignore-case] [--no-anchored] [--no-ignore-case] [--no-wildcards]
[--no-wildcards-match-slash] [--wildcards]
[--wildcards-match-slash] [--checkpoint[=NUMBER]]
[--checkpoint-action=ACTION] [--index-file=FILE] [--check-links]
[--no-quote-chars=STRING] [--quote-chars=STRING]
[--quoting-style=STYLE] [--block-number] [--show-defaults]
[--show-omitted-dirs] [--show-transformed-names]
[--show-stored-names] [--totals[=SIGNAL]] [--utc] [--verbose]
[--interactive] [--confirmation] [--help] [--restrict] [--usage]
[--version] [FILE]...

Examples:
tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.
tar -tvf archive.tar # List all files in archive.tar verbosely.
tar -xf archive.tar # Extract all files from archive.tar.

Main operation mode:

-A, --catenate, --concatenate append tar files to an archive
-c, --create create a new archive
-d, --diff, --compare find differences between archive and file system
--delete delete from the archive (not on mag tapes!)
-r, --append append files to the end of an archive
-t, --list list the contents of an archive
--test-label test the archive volume label and exit
-u, --update only append files newer than copy in archive
-x, --extract, --get extract files from an archive

Operation modifiers:

--check-device check device numbers when creating incremental
archives (default)
-g, --listed-incremental=FILE handle new GNU-format incremental backup
-G, --incremental handle old GNU-format incremental backup
--ignore-failed-read do not exit with nonzero on unreadable files
-n, --seek archive is seekable
--no-check-device do not check device numbers when creating
incremental archives
--occurrence[=NUMBER] process only the NUMBERth occurrence of each file
in the archive; this option is valid only in
conjunction with one of the subcommands --delete,
--diff, --extract or --list and when a list of
files is given either on the command line or via
the -T option; NUMBER defaults to 1
--sparse-version=MAJOR[.MINOR]
set version of the sparse format to use (implies
--sparse)
-S, --sparse handle sparse files efficiently

Overwrite control:

-k, --keep-old-files don't replace existing files when extracting
--keep-newer-files don't replace existing files that are newer than
their archive copies
--no-overwrite-dir preserve metadata of existing directories
--overwrite overwrite existing files when extracting
--overwrite-dir overwrite metadata of existing directories when
extracting (default)
--recursive-unlink empty hierarchies prior to extracting directory
--remove-files remove files after adding them to the archive
-U, --unlink-first remove each file prior to extracting over it
-W, --verify attempt to verify the archive after writing it

Select output stream:

--ignore-command-error ignore exit codes of children
--no-ignore-command-error treat non-zero exit codes of children as
error
-O, --to-stdout extract files to standard output
--to-command=COMMAND pipe extracted files to another program

Handling of file attributes:

--atime-preserve[=METHOD] preserve access times on dumped files, either
by restoring the times after reading
(METHOD='replace'; default) or by not setting the
times in the first place (METHOD='system')
--delay-directory-restore delay setting modification times and
permissions of extracted directories until the end
of extraction
--group=NAME force NAME as group for added files
--mode=CHANGES force (symbolic) mode CHANGES for added files
--mtime=DATE-OR-FILE set mtime for added files from DATE-OR-FILE
-m, --touch don't extract file modified time
--no-delay-directory-restore
cancel the effect of --delay-directory-restore
option
--no-same-owner extract files as yourself
--no-same-permissions apply the user's umask when extracting permissions
from the archive (default for ordinary users)
--numeric-owner always use numbers for user/group names
--owner=NAME force NAME as owner for added files
-p, --preserve-permissions, --same-permissions
extract information about file permissions
(default for superuser)
--preserve same as both -p and -s
--same-owner try extracting files with the same ownership
-s, --preserve-order, --same-order
sort names to extract to match archive

Device selection and switching:

-f, --file=ARCHIVE use archive file or device ARCHIVE
--force-local archive file is local even if it has a colon
-F, --info-script=NAME, --new-volume-script=NAME
run script at end of each tape (implies -M)
-L, --tape-length=NUMBER change tape after writing NUMBER x 1024 bytes
-M, --multi-volume create/list/extract multi-volume archive
--rmt-command=COMMAND use given rmt COMMAND instead of rmt
--rsh-command=COMMAND use remote COMMAND instead of rsh
--volno-file=FILE use/update the volume number in FILE

Device blocking:

-b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record
-B, --read-full-records reblock as we read (for 4.2BSD pipes)
-i, --ignore-zeros ignore zeroed blocks in archive (means EOF)
--record-size=NUMBER NUMBER of bytes per record, multiple of 512

Archive format selection:

-H, --format=FORMAT create archive of the given format

FORMAT is one of the following:

gnu GNU tar 1.13.x format
oldgnu GNU format as per tar <= 1.12
pax POSIX 1003.1-2001 (pax) format
posix same as pax
ustar POSIX 1003.1-1988 (ustar) format
v7 old V7 tar format

--old-archive, --portability
same as --format=v7
--pax-option=keyword[[:]=value][,keyword[[:]=value]]...
control pax keywords
--posix same as --format=posix
-V, --label=TEXT create archive with volume name TEXT; at
list/extract time, use TEXT as a globbing pattern
for volume name

Compression options:

-a, --auto-compress use archive suffix to determine the compression
program
-I, --use-compress-program=PROG
filter through PROG (must accept -d)
-j, --bzip2 filter the archive through bzip2
--lzma filter the archive through lzma
--no-auto-compress do not use archive suffix to determine the
compression program
-z, --gzip, --gunzip, --ungzip filter the archive through gzip
-Z, --compress, --uncompress filter the archive through compress

-J, --xz filter the archive through xz
--lzop filter the archive through lzop

Local file selection:

--add-file=FILE add given FILE to the archive (useful if its name
starts with a dash)
--backup[=CONTROL] backup before removal, choose version CONTROL
-C, --directory=DIR change to directory DIR
--exclude=PATTERN exclude files, given as a PATTERN
--exclude-caches exclude contents of directories containing
CACHEDIR.TAG, except for the tag file itself
--exclude-caches-all exclude directories containing CACHEDIR.TAG
--exclude-caches-under exclude everything under directories containing
CACHEDIR.TAG
--exclude-tag=FILE exclude contents of directories containing FILE,
except for FILE itself
--exclude-tag-all=FILE exclude directories containing FILE
--exclude-tag-under=FILE exclude everything under directories
containing FILE
--exclude-vcs exclude version control system directories
-h, --dereference follow symlinks; archive and dump the files they
point to
--hard-dereference follow hard links; archive and dump the files they
refer to
-K, --starting-file=MEMBER-NAME
begin at member MEMBER-NAME in the archive
--newer-mtime=DATE compare date and time when data changed only
--no-null disable the effect of the previous --null option
--no-recursion avoid descending automatically in directories
--no-unquote do not unquote filenames read with -T
--null -T reads null-terminated names, disable -C
-N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE
only store files newer than DATE-OR-FILE
--one-file-system stay in local file system when creating archive
-P, --absolute-names don't strip leading `/'s from file names
--recursion recurse into directories (default)
--suffix=STRING backup before removal, override usual suffix ('~'
unless overridden by environment variable
SIMPLE_BACKUP_SUFFIX)
-T, --files-from=FILE get names to extract or create from FILE
--unquote unquote filenames read with -T (default)
-X, --exclude-from=FILE exclude patterns listed in FILE

File name transformations:

--strip-components=NUMBER strip NUMBER leading components from file
names on extraction
--transform=EXPRESSION, --xform=EXPRESSION
use sed replace EXPRESSION to transform file
names

File name matching options (affect both exclude and include patterns):

--anchored patterns match file name start
--ignore-case ignore case
--no-anchored patterns match after any `/' (default for
exclusion)
--no-ignore-case case sensitive matching (default)
--no-wildcards verbatim string matching
--no-wildcards-match-slash wildcards do not match `/'
--wildcards use wildcards (default for exclusion)
--wildcards-match-slash wildcards match `/' (default for exclusion)

Informative output:

--checkpoint[=NUMBER] display progress messages every NUMBERth record
(default 10)
--checkpoint-action=ACTION execute ACTION on each checkpoint
--index-file=FILE send verbose output to FILE
-l, --check-links print a message if not all links are dumped
--no-quote-chars=STRING disable quoting for characters from STRING
--quote-chars=STRING additionally quote characters from STRING
--quoting-style=STYLE set name quoting style; see below for valid STYLE
values
-R, --block-number show block number within archive with each
message
--show-defaults show tar defaults
--show-omitted-dirs when listing or extracting, list each directory
that does not match search criteria
--show-transformed-names, --show-stored-names
show file or archive names after transformation
--totals[=SIGNAL] print total bytes after processing the archive;
with an argument - print total bytes when this
SIGNAL is delivered; Allowed signals are: SIGHUP,
SIGQUIT, SIGINT, SIGUSR1 and SIGUSR2; the names
without SIG prefix are also accepted
--utc print file modification dates in UTC
-v, --verbose verbosely list files processed
-w, --interactive, --confirmation
ask for confirmation for every action

Compatibility options:

-o when creating, same as --old-archive; when
extracting, same as --no-same-owner

Other options:

-?, --help give this help list
--restrict disable use of some potentially harmful options
--usage give a short usage message
--version print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control may be set with --backup or VERSION_CONTROL, values are:

none, off never make backups
t, numbered make numbered backups
nil, existing numbered if numbered backups exist, simple otherwise
never, simple always make simple backups

Valid arguments for --quoting-style options are:

literal
shell
shell-always
c
c-maybe
escape
locale
clocale

*This* tar defaults to:
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/usr/sbin/rmt.exe
--rsh-command=/usr/bin/rsh

Report bugs to <bug-tar@gnu.org>.[/more] и русский перевод мануала man tar(1). Наверное так будет удобнее когда смысл каждого ключа разъяснён с примерами его использования..
Автор: egor23
Дата сообщения: 16.03.2013 05:30
AftarJjet

Цитата:
Пытаюсь, с помощью обсуждаемой проги большое кол-во файлов

а это сколько?

Добавлено:
Кстати - Скорость показывается средняя, а не мгновенная.
Автор: Victor_VG
Дата сообщения: 16.03.2013 06:02
AftarJjet

Кстати, можно воспользоваться чуть иным инструментом - bsdtar взяв его Win32 порт отсюда вместе с bzip2 и zlib отдельно, либо всем пакетом в общем архиве с ргхост-а - у bsdtar меньше функциональность чем у tar, но зато управление им проще и для 90% задач резервного копирования он подходит. В данном случае вся необходимая документация включена в архив в каталоге ./man .
Автор: Medicar
Дата сообщения: 16.03.2013 13:23
Здравствуйте!

Как с помощью 7z удалить из 5000 zip-архивов все jpg-файлы через командную строку?
Спасибо заранее.
Автор: HumpSoft
Дата сообщения: 18.03.2013 14:33
Medicar


Код: for %d in (*.zip) do 7z d %d *.jpg -r
Автор: Medicar
Дата сообщения: 20.03.2013 19:57
Спасибо, помогло. Жаль с длинными именами и подпапками не сработало.
Автор: sanatoliy
Дата сообщения: 20.03.2013 20:21
http://www.tomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html
тут уникальная статья на том-xандс. После нее я серьёзно решил слинять с винрар.
Прогнал пару тестов на маленьких файлах, выиграш небольшой, но

большой недостаток 7зип, которого нет в винрар - это невозможность использовать F2 в нутри архива.

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

Такая возможность появилась в винраре только в последних версиях, как это настроить в 7зипе?
Автор: Victor_VG
Дата сообщения: 20.03.2013 21:55
sanatoliy

Переименование объектов внутри архива по F2 - зовём 7zFM (GUI) он это умеет. Консольные arj/arc/rar/tar/bzip2/gzip/rzip так же не умеют переименовывать файлы и каталоги в архивах - при этой операции происходит частичная или полная (для SOLID ) перепаковка архива. И никаких настроек для 7zFM для этого не требуется - возможность изначально присутствует в его исполняемом коде. Просто иногда на самые очевидные вещи мы можем не обратить внимание. Ничего страшного, бывает. А переименовать сам архив - команды ren /Y <old_name> <new_name> (cmd, Power Shell, Win) или mv -f <old_name> <new_name> (console, UNIX, Msys, CygWin). Или тот же F2 в 7zFM на имени архива. Только надо выйти из него и переименовывать файлы на панели 7zFM.
Автор: Medicar
Дата сообщения: 23.03.2013 07:15
Здравствуйте!
Подскажите, пожалуйста: как в 7z или rar с помощью bat-файла или cmd.exe добавить в zip-архив сразу много папок, чтоб каждая папка была в своем архиве и исключить базовую папку из пути у всех архивов (например, из папки c:\1\2 сделать архив, в корне которого была бы папка c\2).
Заранее спасибо.
Автор: Inoz2000
Дата сообщения: 23.03.2013 09:09
с помощью bat-файла
for /f "tokens=*" %%d in ('dir /A:D /B') do 7z.exe a -r -- "%%d.zip" "%%d"
или cmd.exe
for /f "tokens=*" %d in ('dir /A:D /B') do 7z.exe a -r -- "%d.zip" "%d"

Добавлено:
ничего не понятно, что такое
Цитата:
папка c\2

Цитата:
и исключить базовую папку
Автор: Alex_Piggy
Дата сообщения: 23.03.2013 10:31
Добрый день
Inoz2000 Medicar
Не знаю. Больше запрос похож на другое:

Код:
if "%~1"=="" exit
set "output=D:\test"
:loop
7z.exe a -r -tzip "%output%\%~nx1.zip" "%~f1\*"
if not "%~2"=="" (shift & goto :loop)
Автор: Inoz2000
Дата сообщения: 23.03.2013 10:56
Alex_Piggy
я тоже не знаю но
7-Zip создаёт zip-архив даже без параметра -tzip
и ещё

Цитата:
Ключ -AF<тип> — указать формат архива
--------------------------------------------------------------------------------
С помощью этого ключа можно указывать в командной строке тип архива, который будет создавать WinRAR. Параметр <тип> может принимать значения 'rar' или 'zip'.

Пример:
WinRAR a -afzip arc

Эта команда создаст архив arc.zip.

Данный ключ поддерживается только в WinRAR. Консольная версия RAR создавать архивы ZIP не может.


Добавлено:
Alex_Piggy [more]с параметром -ibck устанавливается низкий приоритет процесса, что может уменьшить скорость работы[/more]
Автор: Medicar
Дата сообщения: 24.03.2013 19:09
Спасибо, помогло
for /f "tokens=*" %%d in ('dir /A:D /B') do rar.exe a -r -afzip -ep1 %%d.zip %%d\*
Только фомат rar
Как бы теперь 500 rar в zip перегнать...
Автор: Alex_Piggy
Дата сообщения: 24.03.2013 19:38
Добрый день, Medicar
[offtopic] Вы уверены, что у Вас так (с "rar.exe" + "-afzip") упаковалось? У меня выдает "Неизвестная опция afzip"
В гуи Winrar есть "Tools > Convert Archives"
Если исходные не удалены, просто запаковывать заново...
for /d %%d in (*) do winrar.exe a -r -afzip -ep1 "%%~d.zip" "%%~d\*" [/offtopic]

Перепаковать при помощи 7-zip из rar в zip

Код:
for %%i in (*.rar) do (
7z x "%%~i" -o"%%~ni"
7z a -r -tzip "%%~ni.zip" "%%~ni\*"
rd /q /s "%%~ni"
)
Автор: Medicar
Дата сообщения: 24.03.2013 21:05
Спасибо большое вам, уважаемые форумчане, за советы. Проблема решена. То, как вы знаете командную строку - просто класс!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135

Предыдущая тема: RDM+, TSMobiles и VNC+


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.