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

» WinRAR (часть 2)

Автор: Inoz2000
Дата сообщения: 17.11.2014 18:42

Dj BoBo

Как же всё таки будет вызываться команда, ярлыком или где?
Если всё же планируется создавать ярлык, то надо бы указывать рабочую папку в его свойствах, или менять команду:
C:\Windows\System32\cmd.exe /c CD/D D:\test & for /f %d in ('dir D:\test /b /ad') do Winrar a -r %d %d

…думайте сами
Автор: Dj BoBo
Дата сообщения: 17.11.2014 18:49
Inoz2000
Спасибо большое. Допилил про рабочую папку в свойствах ярлыка.
Мне вот эта команда не совсем понятна, а именно ('dir D:\test /b /ad'). Здесь нужно что-то менять в случае если корневая папка с файлами будет находиться на диске С к примеру? Вообще за что данная команда отвечает.
Автор: Inoz2000
Дата сообщения: 17.11.2014 19:05

Цитата:
Вообще за что данная команда отвечает.
а спросите-ка у того, кто её вписал
Цитата:
В данном примере я вписал целевую папку test
Автор: Dj BoBo
Дата сообщения: 17.11.2014 19:19
Inoz2000
Всё верно. Я и вписал. Но на тот момент я не знал что рабочая папка задаётся в свойствах ярлыка. А сейчас, когда ситуация прояснилась мне интересно почему там вообще фигурирует буква диска, причём не C а D.
Автор: Inoz2000
Дата сообщения: 17.11.2014 19:33

Ну, раз уж в свойствах ярлыка явно указана рабочая папка, то вернёмся к началу… - там совсем ничего не фигурирует.
Автор: Dj BoBo
Дата сообщения: 17.11.2014 19:52
Вот оно что А я руководствуясь этим постом так и ввёл.


Цитата:
Хотите 'с ярлыка', значит в свойствах ярлыка пишите так
Объект: C:\Windows\System32\cmd.exe /c for /f %d in ('dir D:\ /b /ad') do Winrar a -r %d %d


--
В итоге финальный код выглядит так.


Код: [no]C:\Windows\System32\cmd.exe /c for /f %d in ('dir /b /ad') do "C:\Program Files\WinRAR\WinRAR.exe" a -r %d %d

А рабочий каталог задаётся в графе "рабочая папка" в ярлыке.[/no]
Автор: oshizelly
Дата сообщения: 18.11.2014 18:40
EugeneRoshal 12:50 17-11-2014
Цитата:
Если перед вызовом контекстного меню мы выделили только файл, в архиве сохранится только файл, без свойств его родительских папок. Если мы выделили папку, свойства папки, включая время, сохранятся в архиве.

WinRAR создаст в архиве только одну запись для файла, отдельных записей для папок создано не будет. А как в этой записи для файла будет сохранено имя файла, с полным путем или нет, уже зависит от опции "File paths".

В продолжение обсуждения возникла такая мысль: а является ли сегодняшнее поведение программы в этом отношении логичным? Может быть, более правильным дефолтным поведением было бы при упаковке одного или нескольких выделенных файлов через контекстное меню Windows' Explorer автоматически сохранять свойства родительских папок, если файлы упаковываются с полным путём? Даже если эта информация окажется невостребованной, то много лишнего в архиве она уж всяко не займёт.

Или хотя бы добавить опцию, чтобы юзер мог сам выбрать нужный ему вариант. Ведь сейчас такая возможность, как я понимаю, отсутствует, в принципе (я не говорю про использование командной строки или через GUI главного окна).
Автор: Habib2302
Дата сообщения: 18.11.2014 18:51
WinRAR 5.20 Beta 4 RePack (& Portable) by Xabib
Автор: Inoz2000
Дата сообщения: 18.11.2014 19:07
Habib2302
не захламляйте, как там
Автор: Habib2302
Дата сообщения: 18.11.2014 21:00

Цитата:
Что конкретней, это же очевидно, что Reg Organizer в тему Reg Organizer и т.д. !
Автор: Victor_VG
Дата сообщения: 18.11.2014 21:14
Habib2302

Цитата:
WinRAR 5.20 Beta 4 RePack (& Portable) by Xabib

С этим сюда Отдельная тема по сборкам WinRAR а в Программах варез в любой форме запрещён, а ваши посты не только многократный кросс-пост, но и попытка сделать вид что "Наша ваша не понимаша - а Васька слушает да ест!".
Автор: EugeneRoshal
Дата сообщения: 19.11.2014 11:09
oshizelly

Цитата:
Или хотя бы добавить опцию, чтобы юзер мог сам выбрать нужный ему вариант.

Вопрос в востребованности. Не уверен, тянет ли оно на опцию или изменение поведения по умолчанию. Насколько часто бывает, чтобы пользователь паковал только файлы, не выделяя их родительские папки, но при этом и папки, и их время модификации для пользователя были бы важны. Пока похоже на очень частный случай. По крайней мере я у себя такой ситуации не помню.
Автор: oshizelly
Дата сообщения: 19.11.2014 12:36
EugeneRoshal 10:09 19-11-2014
Цитата:
Вопрос в востребованности. Не уверен, тянет ли оно на опцию или изменение поведения по умолчанию. Насколько часто бывает...

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


Цитата:
чтобы пользователь паковал только файлы, не выделяя их родительские папки...

Довольно часто. Чаще, чем наоборот (когда архивируется целиком вся папка).


Цитата:
...но при этом и папки, и их время модификации для пользователя были бы важны.

В 100% случаях. Уж если я использую вариант упаковки файлов вместе с путём (родительскими папками), то я ожидаю, что при распаковке программа восстановит "всё, как было" - естественно, в пределах возможного.



Автор: Ar0ma
Дата сообщения: 19.11.2014 16:18
oshizelly

Мне кажется не стоит перегружать WinRAR не слишком востребованными функциями.
Автор: Victor_VG
Дата сообщения: 19.11.2014 18:27
EugeneRoshal

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

Так что я считаю что для режимов резервного копирования сохранение/восстановление точного штампа времени создания, последних доступа и модификации для всех объектов надо сделать не отключаемым поведением по умолчанию. Тут в качестве прототипов для принятия решения о реализации могут выступить dd, dup/restore, tar, системы резервного копирования. А в остальных случаях хватит опции в профиле/ключа комстроки переключающих режим сохранять или нет штамп времени. Для копирования игрушек какое время не поставь не важно, а для копирования бизнес или научных данных это уже критично.

Автор: Ar0ma
Дата сообщения: 19.11.2014 18:58
Victor_VG

тогда это ключ для rar.exe нужен, но не WinRAR, бекапы обычно из батника запускаются
Автор: Inoz2000
Дата сообщения: 19.11.2014 19:36

Цитата:
бекапы обычно из батника запускаются
с их помощью запросто запускается WinRAR.exe, который понимает больше ключей командной строки, имеет профили архивации и т.д.
Автор: EugeneRoshal
Дата сообщения: 19.11.2014 19:40
Victor_VG

Цитата:
Так что я считаю что для режимов резервного копирования сохранение/восстановление точного штампа времени создания, последних доступа и модификации для всех объектов надо сделать не отключаемым поведением по умолчанию. Тут в качестве прототипов для принятия решения о реализации могут выступить dd, dup/restore, tar, системы резервного копирования.

Тут речь идет о том, что если мы упаковываем в архив один отдельно взятый файл c:\dir1\dir2\filename.ext с полным путем, должны ли мы автоматически сохранять в архиве также и время каталогов c:\dir1, c:\dir1\dir2. Время файла filename.ext RAR безусловно сохраняет. Время каталогов тоже сохраняет, если явно указано паковать каталог. Но если указано паковать только файл, RAR сохраняет только время файла. Насколько я знаю, tar поступает так же.
Автор: regist123
Дата сообщения: 19.11.2014 20:09
Victor_VG
1) резервное копирование делается обычно по расписанию через планировщик и запускается через командную строку.
2) Если так важно сохранить время изменения папки, то почему не заархивировать вместе с папкой .
А время изменения всех папок которые находятся по пути до архивируемой вряд ли нужно (кому-то кроме oshizelly).
Автор: Inoz2000
Дата сообщения: 19.11.2014 20:17
А давайте-ка все дружно вспомним, что советовал EugeneRoshal гражданину grbdv на его вопрос

Цитата:
Упаковать за один заход все каталоги и часть файлов вряд ли получится. Разве что перечислить все каталоги и требуемые файлы в файле-списке и подсунуть их RAR вместе с ключом -r-.
таким образом, решение есть.

Добавлено:
Кто хочет, тот ищет возможности, кто не хочет…
Автор: oshizelly
Дата сообщения: 19.11.2014 21:21
regist123 19:09 19-11-2014
Цитата:
Если так важно сохранить время изменения папки, то почему не заархивировать вместе с папкой

Потому что в папке может быть 10 000 файлов (включая содержимое дочерних папок), а архивировать надо из них, допустим, 300 файлов.
Автор: Victor_VG
Дата сообщения: 19.11.2014 21:23
EugeneRoshal

А, в такой ситуации штампы времени вышележащих относительно родительского узлов и ветвей дерева лишняя и однозначно вредная информация. И dd, dup/restore, tar сохраняют точный снимок фрагмента ФС только от указанного уровня дерева и ниже. Иначе мы при восстановлении потеряем данные поскольку алгоритмы систем бэкапа обычно используют несколько элементов при принятии решения о перезаписи данных - если предусмотрено ФС то версию набора данных, штамп времени - более старая копия данных обычно автоматически перезаписывается резервной, наличие бинарных различий (тут возможна простая проверка по служебным данным оглавления файлов как это делалось к примеру на "Минск-32" и ранних версиях IBM OS/360) в данных - тут возможен и запрос к оператору, целостность данных - повреждённые данные перезаписываются автоматически.

А сохранение штампа времени всех вышележащих узлов распаковке с восстановлением пути при наличии такой ветви в дереве приведёт к искажению её штампов времени что чревато перезаписью или удалением данных при первом же восстановлении бэкапа ибо это делает робот, а любая ЭВМ кроме "плюс/минус, да/нет, сдвиг влево/вправо, И/ИЛИ/НЕ" аппаратно ничего сама не умеет и годна только что яичницу на ней жарить, ну или орехи ей/на ней колоть - это уже кому как нравится. ЭВМ это просто кофемолка для чисел которая считает намного быстрее чем мы думаем, а вот с мозгами у неё не просто плохо, а совсем беда - в проекте не предусмотрены что бы про них ни говорили.

Люди могу восхищаться попугаями в бенчмарках, а для меня это конкретные сигналы, сложнейшие схемы и бессонные ночи когда что-то не получается, да рык начальства "Сроки горят! Уволю!" и иные проблемы которые надо решить ещё до того как сей кусок железа свою первую лампочку зажжёт...

Добавлено:
regist123
Inoz2000

Да и более того - это неверная постановка задачи, а отсюда и вся цепочка логики летит в Тартар...
Автор: oshizelly
Дата сообщения: 19.11.2014 21:26
Inoz2000 19:17 19-11-2014
Цитата:
Упаковать за один заход все каталоги и часть файлов вряд ли получится. Разве что перечислить все каталоги и требуемые файлы в файле-списке и подсунуть их RAR вместе с ключом -r-. Кто хочет, тот ищет возможности, кто не хочет…

Конечно, так можно сделать. Но где-то я то ли слышал, то ли читал, что помимо наличия функционала программа должна ещё быть и удобной. То есть, запуск часто используемых команд должен быть простым и лёгким, без необходимости предварительно создавать списки и танцевать танцы с бубном. Вроде быэто называется "дружественный интерфейс", а по-учёному "usability". Врут, наверное?
Автор: Inoz2000
Дата сообщения: 19.11.2014 21:26

oshizelly

Цитата:
а архивировать надо
ну так архивируйте на здоровье
Автор: oshizelly
Дата сообщения: 19.11.2014 21:35
EugeneRoshal 18:40 19-11-2014
Цитата:
Тут речь идет о том, что если мы упаковываем в архив один отдельно взятый файл c:\dir1\dir2\filename.ext с полным путем, должны ли мы автоматически сохранять в архиве также и время каталогов c:\dir1, c:\dir1\dir2.

Или 300 отдельно взятых файлов из одной папки...
Автор: Victor_VG
Дата сообщения: 19.11.2014 23:32
oshizelly

Погоди, ты по моему в начальных предпосылках ошибся, а отсюда всё по цепочке пошло. У тебя стоит задача создать N экземпляров некоего набора данных не повторяя каждый раз одну и ту же последовательность операций. Я её верно понял? Это классическая задача с однотипными операциями и для неё давно существует решение в виде понятия "сценарий" (скрипт) как набора команд выполняемых системой без вмешательства оператора. И я бы её решал именно такими методами - написать шелл-скрипт с параметрами и звать его передавая в параметрах имя каталога и что-то ещё смотря по частоте и формулировке текущего выполнения задачи. А уже он пусть зовёт утилиту формируя ей нужную комстроку. Ну и коли прижмёт то можно состряпать нечто типа GUI оболочки для запуска набора скриптов с параметрами которая у простит их вызов и снизит шанс ошибиться на этом этапе. Только вопрос в том стоит ли сия овчинка выделки в чисто утилитарном плане отношения отдачи от её использования к затратам на её создание? Что-то мне подсказывает что эта цифра будет очень сильно к нулю стремится.

P.S.


Я бы в UI оставил только минимум основных команд управления и вызов меню общих настроек - так меньше вероятность человеческой ошибки, а остальное в ключи вызова, а их чётко расписать в документации и пусть её читают. Что Женя и сделал, да вот беда - иные "пользователи" хотят только кнопки нажимать, а от комстроки как чёрт от ладана шарахаются ведь тут думать надо, а у них от непосильной работы думалка перегревается и извилина раскаляется добела, а посему их ультимативное требование "Мою личную кнопку на самое видное место прибить или я куплю билет и назло кондуктору не поеду!".
Автор: oshizelly
Дата сообщения: 20.11.2014 01:33
Victor_VG 22:32 19-11-2014
Цитата:
У тебя стоит задача создать N экземпляров некоего набора данных не повторяя каждый раз одну и ту же последовательность операций. Я её верно понял?

Нет, неверно. Задача гораздо проще, и она, как мне кажется, довольно внятно описана чуть выше здесь и здесь.

Victor_VG 22:32 19-11-2014
Цитата:
Это классическая задача с однотипными операциями и для неё давно существует решение в виде понятия "сценарий" (скрипт) как набора команд выполняемых системой без вмешательства оператора.

Согласен. Но вообще-то таким алгоритмом описывается едва ли не работа любой программы (как совершенно справедливы было отмечено чуть выше). Так что, вообще отменим кнопки и GUI и полностью перейдём на скрипты? Теоретически, это тоже решение. Но вот юзабилити...

А вообще, это обсуждение затянулось немного. Я свою просьбу изложил и, как мог, аргументировал. Оппоненты тоже высказались. Дальше пусть уважаемый автор решает.
Автор: Victor_VG
Дата сообщения: 20.11.2014 03:00
oshizelly

Тут наверное одно бы помехой не было - поддержка PCRE для задания масок. Тогда бы и твоя задача решалась много проще.
Автор: DVall
Дата сообщения: 20.11.2014 09:57

Цитата:
Потому что в папке может быть 10 000 файлов (включая содержимое дочерних папок), а архивировать надо из них, допустим, 300 файлов.

Исходя из постановки задачи - информация о время изменения папки безсмысленна.
Что даст это время, если самих файлов не будет?
Автор: chAlx
Дата сообщения: 21.11.2014 09:22

Цитата:
Что даст это время, если самих файлов не будет?

Видимо, речь про накопительные архивы: изменения пакуем и восстанавливаем по ним точную копию исходной директории. Но конкретно для этого, насколько я помню, в RAR/WinRAR есть достаточно мощные встроенные средства.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160

Предыдущая тема: Прога для поиска картинок в интернете.


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