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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - открыть файл-архив, используя 7-ZIP, изменить текст и закрыть файл,сохранив изменения

Ответить
Настройки темы
Любой язык - открыть файл-архив, используя 7-ZIP, изменить текст и закрыть файл,сохранив изменения

Пользователь


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

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


Изменения
Автор: v79italya
Дата: 02-09-2019
Приветствую. как можно JS-скриптом или Batом открыть файл-архив, используя 7-ZIP, изменить текст и закрыть файл,сохранив изменения?
на скринах показаны шаги. архив открывается двумя шагами. сначала ПКМ -> 7-Zip -> Открыть архив. затем ПКМ -> Просмотр. нажав Просмотр, жду около минуты(это, наверное, надо учесть, поставив как то паузу) открытие файла. когда файл откроется, нажимаю Правка -> Найти.. ищу </xyzID> . все вместе <xyzID>3</xyzID> . только вместо тройки может быть любое число одно-трехзначное. и вот вместо 3(или другого числа) надо поставить 27. причем, когда набираю 27, то опять нужно около минуты ждать(опять надо учесть). потом закрываю файл с сохранением изменений и обновлением файла в архиве. возможно ли это все делать на автомате?
адрес файла и имя файла, наверное, лучше в скрипте указать. сейчас так: C:\red\xyz.iwprj2
сейчас в файле текст укорочен. поэтому будет быстро сохраняться изменения. на самом деле надо около минуты-полторы.

Отправлено: 19:08, 17-08-2019

 

Ветеран


Contributor


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

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


Цитата v79italya:
а на маил не предусмотрено прикрепление файл. »
Отправьте тестовое письмо с адресом, я Вам отвечу, затем Вы сможете написать напрямую. Сам я не могу Вам отправить письмо по причине:
Цитата:
Извините, этот пользователь отключил прием E-mail.

Отправлено: 15:34, 18-08-2019 | #11



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

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


Пользователь


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

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


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

Отправлено: 15:48, 18-08-2019 | #12


Ветеран


Contributor


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

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


Цитата v79italya:
не получается отправить тестовое письмо. »
Мне уже две штуки пришло, и я Вам на них ответил.

Цитата v79italya:
давайте использовать файл из темы. »
Тогда без меня. Я предпочитаю работать с xml-файлом, как с xml-файлом, а не с его огрызком.

Отправлено: 15:59, 18-08-2019 | #13


Пользователь


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

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


Iska, отправил оригинал

Отправлено: 16:05, 18-08-2019 | #14


Ветеран


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

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


Цитата Iska:
Цитата Busla:
7zip в поток выводит только потоковые форматы, традиционные .zip, .rar, .7z к ним не относятся. »
Поясните?! »
алгоритм разработан так что получает поток и отдаёт поток - последовательность данных в один проход
для них возможно выдавать в stdout
Цитата:
If the -so switch is used with the command that creates archive, it works only with some archive formats: xz, gzip, bzip2 and tar.
Цитата Iska:
Если их убрать ничего не изменится - о проблеме ОС/интерпретатор сообщит, а "результат" будет тот же. »
Можно, конечно, и так. Но лучше заранее обрабатывать такие ситуации. »
"обработать ситуацию" - это если не нашёлся 7zip, поискать WinRar

а ваша обработка в стиле вместо ошибки (с ошибочным кодом возврата) написать красный текст с нормальным кодом завершения - это медвежья услуга

Отправлено: 17:24, 18-08-2019 | #15


Ветеран


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

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


Цитата Iska:
Как там с кодировками, BOM, концами строк, а?
Нормально. А должно быть иначе?
Цитата Busla:
7zip в поток выводит только потоковые форматы, традиционные .zip, .rar, .7z к ним не относятся.
Очередной бред? Или вдруг из исходников собрался какой-то специфический 7zip? Для начала бы просто проверили -so и -si на практике.
Цитата Busla:
Да и sed я бы не стал советовать - стороннее ПО, да и "вещь в себе" - лучше на PoSh сварганить замену.
Ага... А 7zip не стороннее ПО? На pwsh можно много чего сделать. Однако в вашем случае это обычное пустословие, ибо, во-первых, вы бы привели рабочий код, во-вторых, случись RAR формат вы бы наверняка использовали сторонние библиотеки. Или вы желаете заложиться на почку, что можете на pwsh реализовать алгоритм сжатия RAR?

Отправлено: 18:27, 18-08-2019 | #16


Deadooshka


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

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


С sed'ом работает и bom-метку сохраняет, но через временный файл только
Код: Выделить весь код
7z x -tgzip xyz.iwprj2 -so | sed "s/\(<xyzID>\)[0-9]\{1,\}\(<\/xyzID>\)/\127\2/ig" >tempfile.tmp & 7z u -tgzip xyz.iwprj2 -sixyz <tempfile.tmp & del /f tempfile.tmp

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


Ветеран


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

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


Цитата greg zakharov:
Очередной бред? Или вдруг из исходников собрался какой-то специфический 7zip? Для начала бы просто проверили -so и -si на практике. »
бред - это проверять на практике то, что по инструкции работать не должно
даже если в вашем случае это сработало - это называется deprecated - не нужно ориентироваться на такое поведение, чтобы потом не было больно

Отправлено: 22:56, 18-08-2019 | #18


Ветеран


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

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


Цитата Busla:
бред - это проверять на практике то, что по инструкции работать не должно
даже если в вашем случае это сработало - это называется deprecated - не нужно ориентироваться на такое поведение, чтобы потом не было больно
Бред нарастает. Где в манах 7zip написано что это устаревшая фича? То у вас sed чуть ли не от лукавого, то попытки оправдать свой бред...

Отправлено: 00:08, 19-08-2019 | #19


Ветеран


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

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


Цитата greg zakharov:
Бред нарастает. Где в манах 7zip написано что это устаревшая фича? »
"Сама придумала, сама обиделась"
где я писал про устаревшую фичу?

Я привёл конкретную цитату из инструкции к последнему стабильному релизу.

Цитата greg zakharov:
Ага... А 7zip не стороннее ПО? »
ваша аналогия неуместна - 7zip (или другой архиватор) для решения задачи необходим, а sed - нет
ну и где брать архиватор - понятно, а где брать sed - нет

Отправлено: 10:57, 19-08-2019 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - открыть файл-архив, используя 7-ZIP, изменить текст и закрыть файл,сохранив изменения

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Выскакивает ошибка "Вы пытаетесь открыть файл имеющий тип системный файл (.dll)" yuazakharov Microsoft Windows 10 5 06-10-2018 12:06
CMD/BAT - [решено] Упаковать файл в архив ARJ с таким же именем как и файл Felix-rus53 Скриптовые языки администрирования Windows 1 13-02-2018 22:46
Вопрос - PDF файл открывается как ZIP. slonikdva Защита компьютерных систем 13 29-10-2017 22:15
2013 - Как открыть файл *.mdb, не используя *.ldb? IksSafonsky Microsoft Office (Word, Excel, Outlook и т.д.) 0 15-02-2016 16:09
CMD/BAT - Найти файл используя список с именами в txt файле Spacejet Скриптовые языки администрирования Windows 0 29-07-2015 10:02




 
Переход