View previous topic :: View next topic |
Author |
Message |
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 06, 2017 18:38 Post subject: |
|
|
Nick
Это код в результате ext1 покажет?:
Code: | With CreateObject("Scripting.FileSystemObject")
MsgBox .GetExtensionName(.GetBaseName("C:\FileName.ext3.ext2.ext1.ext"))
End With |
Nick wrote: | при распаковке одиночных элементов не перемещается в папку до полного пути, видимо, срабатывает ограничение в 260 символов в пути. | С одиночников я тесты и начинаю. Ограничения этого там нет, как и написано снизу wiki-страницы. С каким путём такая проблема?
А-а.. Это о переходе к файлу разговор, а не о перемещении. На 9-ке эту проблему Гислер исправил.
Если вернуться к моей строке с правильным путём до TCFS2, то будет работать и на 8.52a. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Tue Mar 07, 2017 17:55 Post subject: |
|
|
Flasher
Показывает ext1.
---------------------------
ext1
---------------------------
Но, почему-то именно при таких параметрах (%WL docx.rar|xlsx.rar|html.rar 1 s 1) распаковка не происходит (ни на длинном пути, ни на коротком пути).
Flasher wrote: | Если вернуться к моей строке с правильным путём до TCFS2, то будет работать и на 8.52a | Я так понял, что, если взять эту старую версию скрипта и прописать к ней путь до утилиты TCFS2, то будет работать переход и на длинном пути (но, при этом распаковка на длинных путях и двойные расширения конечно-же работать не будут).
Или можно взять и обновить сам TC, тогда, можно использовать более новую версию скрипта и без утилиты TCFS2...
Flasher wrote: | На 9-ке эту проблему Гислер исправил. | Странно, что при этом почему-то виноват сам TC? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 07, 2017 18:04 Post subject: |
|
|
Nick wrote: | именно при таких параметрах | 7z.exe давно обновлялась? Я проверил. Никаких проблем не испытываю. Стою на файле C:\Temp\FileName.html.rar, выполняю - открывается папка с файлами C:\Temp\FileName.html.
Nick wrote: | Я так понял, что, если взять эту старую версию | Нет. Я же пишу конкретно про строку (а не весь код), которую можно заменить, чтобы не обновлять ТС, если не требуется.
Nick wrote: | Странно, что при этом почему-то виноват сам TC? | Потому что ... гладио... %COMMANDER_EXE%. Да и вообще за навигацию в ТС ничто кроме него отвечать не может. Логика _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Tue Mar 07, 2017 19:46 Post subject: |
|
|
Flasher wrote: | 7z.exe давно обновлялась? Я проверил. Никаких проблем не испытываю. | У меня вроде бы стоит последняя версия 7z.exe (16.4.0.0). При параметрах %WL htm.rar 1 s 1 распаковка происходит нормально (также и с doc.rar и xls.rar), а если стоит html.rar или docx.rar, xlsx.rar, manifest.rar, zipx.rar - ничего не распаковывает... В чем может быть проблема???
Flasher wrote: | Я же пишу конкретно про строку (а не весь код) | Но, в последней версии скрипта распаковки архивов вообще нет строки с "WSH.Exec"?
Flasher wrote: | за навигацию в ТС ничто кроме него отвечать не может | В данном случае ведь скрипт и управляет навигацией... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 07, 2017 20:20 Post subject: |
|
|
Nick wrote: | В чем может быть проблема? | Думаю, в этом.
Nick wrote: | вообще нет строки с "WSH.Exec"? | Вместо H теперь там S.
Nick wrote: | В данном случае ведь скрипт и управляет навигацией. | Скрипт может разве только выполнить имеющуюся команду или послать сообщение в окно, а вот за результат навигации всегда будет отвечать само приложение. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Thu Mar 09, 2017 14:36 Post subject: |
|
|
Flasher
Теперь, вроде бы нормально работает и с указанными расширениями. Какие строки нужно заменить, чтобы папка не создавалась по имени архива?
Flasher wrote: | выполнить имеющуюся команду | Имеется в виду команды самого скрипта? Flasher wrote: | или послать сообщение в окно | Сообщения вроде бы всегда появляются в отдельных окнах, которые создает процесс "wscript.exe". А вот управлять окнами самого TC через скрипт вроде бы нельзя. Только может быть через какие-то сторонние утилиты, которые потом бы возвращали какие-либо значения, которые и передавались бы в сам скрипт...
Т.е., насколько я знаю, скрипт должен ждать, пока утилита не вернет какое-либо значение, а затем продолжить свою работу. При этом в самом срипте должны быть команды для межпроцессного взаимодействия (чтобы можно было получить параметры из другой утилиты). |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Mar 09, 2017 14:52 Post subject: |
|
|
Nick wrote: | Какие строки нужно заменить, чтобы папка не создавалась по имени архива? | А по какому же ещё имени она должна создаваться? Если в архиве одна папка, то она на имя архива не меняется.
Nick wrote: | Имеется в виду команды самого скрипта? | Нет. Имеется в виду команда запуска ТС с его параметрами из комстроки (1, 2), как в текущем варианте. Вот, кстати, это исправление во второй бете:
History.txt wrote: | 13.06.16 Fixed: Command line parameters: Accept path+file name longer than 259 characters (32/64) |
Nick wrote: | Сообщения вроде бы всегда появляются в отдельных окнах | Речь не об окнах с сообщениями, а о посыле сообщения окну ТС через SendMessage/PostMessage, как это делается в TCFS2 и некоторых др. утилитах.
Кстати говоря, строку всё-таки стоило уточнить:
Code: | WSS.Exec """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"" /ef ""tcd(<`" & Replace(It, "\\?\", "") & "\:`>,,S)""" |
Nick wrote: | А вот управлять окнами самого TC через скрипт вроде бы нельзя. | Управлять тут и не надо. Но вот насчёт "нельзя" заблуждение. Можно управлять окнами (правда не всегда в отношении некоторых компонентов) почти любого приложения. Если брать конкретно wscript, то для этого понадобится сторонний ActiveX-компонент вроде TCScript.dll. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Mar 15, 2017 17:01 Post subject: |
|
|
Flasher
Flasher wrote: | Кстати говоря, строку всё-таки стоило уточнить | Т.е. эту строку в последней версии скрипта:
Code: | WSS.Exec "%COMMANDER_EXE% /A /S /O /L=""" & Replace(It, "\\?\", "") & """" | Можно заменить на эту:
Code: | WSS.Exec """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"" /ef ""tcd(<`" & Replace(It, "\\?\", "") & "\:`>,,S)""" | И тогда проблем с переходом к распакованным файлам (в случае распаковки одиночных архивов) быть не должно?
Flasher wrote: | Если в архиве одна папка, то она на имя архива не меняется | Это верно. Но, я имею в виду случай, когда в архиве содержатся несколько папок и/или файлов. Т.е. чтобы была возможность просто распаковать содержимое архива без создания новых папок (по имени архива). Это удобно, чтобы можно было, например, восстановить такую же структуру каталогов с файлами, которая была до их упаковки.
В этом случае какие строки нужно изменить? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Mar 15, 2017 17:50 Post subject: |
|
|
Nick wrote: | И тогда проблем с переходом к распакованным файлам (в случае распаковки одиночных архивов) быть не должно? | А это точно нуждается в подтверждении? Может, всё-таки стоило сперва самому опробовать? И с 9-кой, как было выше указано, проблем и так нет.
Nick wrote: | Т.е. чтобы была возможность просто распаковать содержимое архива | В этом случае скрипт теряет всякий смысл, т.е. вообще не требуется, т.к. 7z/7zG и так умеют это делать без посредников. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Mar 15, 2017 18:43 Post subject: |
|
|
Flasher
Но, меня именно интересует распаковка с возможностью выбора архивов по расширениям (к примеру с двойными расширениями) и извлечение их содержимого без создания папки по имени архива. Это производится сразу на большом количестве папок и файлов. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Mar 15, 2017 19:03 Post subject: |
|
|
Nick
И в чем проблема? 7zG.exe x *.html.zip -y _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Sat Mar 25, 2017 21:01 Post subject: |
|
|
Flasher
Flasher wrote: | И в чем проблема? 7z.exe x *.html.zip -y | А можно более подробно и с конкретным примером...
Т.е. мне надо, чтобы:
- Была возможность указания нескольких расширений (в том числе и двойные).
- Возможность распаковки в структуре файлов и каталогов.
- Удаление архива (только при удачной распаковке).
Это можно реализовать в одной кнопке и без данного скрипта? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Mar 25, 2017 21:35 Post subject: |
|
|
Nick
Это и есть конкретный пример. Все .html.zip будут распакованы в рабочем каталоге. Указание пути к 7z.exe и очистка пути запуска, полагаю, не требует пояснений.
Кнопку с cmd сделать - не проблема. Я привёл тематическую ссылку для обсуждения.
Правда я не понимаю, зачем это в структуре делать, если каждый архив в рабочей папке сам должен содержать структуру, требующую сохранности? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Thu Mar 30, 2017 12:27 Post subject: |
|
|
Flasher wrote: | и очистка пути запуска, полагаю, не требует пояснений. | А вот это важное замечание. Без этого работать кнопка не будет.
Flasher wrote: | каждый архив в рабочей папке сам должен содержать структуру, требующую сохранности? | Ведь не всегда в архивах хранится нужная структура. Иногда там просто собраны наборы файлов и папок, которые нужно потом (после разархивирования) структурировать.
Flasher wrote: | зачем это в структуре делать | Это для того, чтобы можно было восстановить исходную структуру каталогов, которая была до упаковки. |
|
Back to top |
|
|
Nick
Joined: 26 Dec 2014 Posts: 107
|
(Separately) Posted: Wed Apr 05, 2017 17:53 Post subject: |
|
|
Спасибо за данный скрипт и отдельное спасибо за длинные пути.
P.S. Прочее А как Вы вычисляете такие мелкие ошибки? С помощью остановки по точкам в скрипте (если конечно есть такие возможности)? И каким редактором Вы пользуетесь? |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|