View previous topic :: View next topic |
Author |
Message |
АлексейS
Joined: 07 Nov 2013 Posts: 2 Location: Москва
|
(Separately) Posted: Thu Nov 07, 2013 17:22 Post subject: Создание папки с заданным именем |
|
|
Уважаемые форумчане!
Я не спец в написании программного кода скриптов и обращаюсь за помощью.
Имеем: Windows 7 x64 Ultimate и Total Commander 8.0 и x86, и x64 в одном флаконе.
Суть вопроса...
Автоматизация процессов при работе в файловом менеджере(оболочке) Total Commander не может не радовать удобством и разнообразием.
В частности, выполнение разнообразных скриптов кнопками, созданными на панели инструментов.
Итак: необходимо создать каталог в активной панели с заданным именем, скажем "PHOTO"
Данная опция легко выполнима одной строчкой в "vbs" скрипте -
---------------------
WScript.CreateObject("WScript.Shell").SendKeys"{F7}"&("PHOTO")&"{Enter 1}"
---------------------
И каталог создаётся в активной панели с заданным именем... Но...
Если на данный момент раскладка клавиатуры "английская". А если раскладка "русская", то каталог будет иметь имя - "ЗРЩЕЩ".
Просмотрел и прочитал много разного рода рекомендаций по реализации переключения раскладки на время выполнения скрипта,
но ничего, ставящего суть моей ситуации на место, не нашёл. Либо в этом ни у кого не возникало необходимости,
либо никто на этом моменте не заострялся. А хотелось бы иметь корректно исполняемую функцию.
--------------
Вопрос. Возможно ли в присвоении имени папке избежать нежелательного косяка? Как реализовать выполнение скрипта на конкретной раскладке. (имя папки именно на нужном языке).
--------------
Маленькое дополнение.
Этот нежелательный косяк замечен и в выполнении скрипта создания папки с именем "Дата-Время".
То есть...
Есть "vbs" скрипт...
----------------
WScript.CreateObject("WScript.Shell").SendKeys"{F7}"&Right("0"&Year(date),4)&"-"&Right("0"&Month(date),2)&"-"&Right("0"&Day(date),2)&"_"&Right("0"&Hour(time),2)&"-"&Right("0"&Minute(time),2)&"{Enter 1}"
----------------
... и папка создаётся с именем - "2013-11-07_16-48"... Вроде бы и всё. Чего ещё желать?
Но стоит изменить разделители в дате или во времени... и получаем либо "2013ю11ю07_16-46",
изменив разделитель в дате "-" на ".", и имея "русскую" раскладку клавы на момент выполнения скрипта. А хотелось бы "2013.11.07_16-46"...
либо "2013ю11ю07_16Ж47", изменив разделители и в дате, и во времени. А надо бы - "2013.11.07_16:46".
------------
Пожалуй и всё, что хотелось спросить.
Искренне надеюсь на вашу помощь.
Last edited by АлексейS on Thu Nov 07, 2013 21:03; edited 2 times in total |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 07, 2013 18:32 Post subject: |
|
|
Автоматизированное создание папок _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Thu Nov 07, 2013 21:13 Post subject: |
|
|
АлексейS
Предлагаю использовать для отправки последовательности нажатий клавиш функцию send из утилиты TCFS2. Она позволяет посылать символы с сохранением регистра и раскладки (см. модификатор ~). То есть строку параметров (StrPar) для TCFS2 готовить в скрипте (конечно в случае, если возможностей самой TCFS2 для выполнения задачи недостаточно) и вызывать утилиту как-то так: Code: | WScript.CreateObject("WScript.Shell").Exec "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe" & StrPar |
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 07, 2013 21:23 Post subject: |
|
|
sa
Зачем навязывать то, что по определению хуже по реализации? Есть нативный метод создания папки в FSO, её и использовать. Либо md. Примеров хватает.
P.S.: У нас тут в личке разбор полётов. Повременим, пока человек разберётся, что к чему. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Thu Nov 07, 2013 21:45 Post subject: |
|
|
Flasher
Пожалуй, ты прав, хотя я ничего не навязывал, а буквально пытался ответить на поставленный вопрос
Quote: | Как реализовать выполнение скрипта на конкретной раскладке | , не привязываясь к конкретной задаче, решаемой автором.
Просто сам давно маялся с такой проблемой, как смена раскладки.
АлексейS
Пример, симметричный предложенному с SendKeys, но с использованием send в TCFS2: Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "send(`{F7}`) send(`~(PHOTO){ENTER}`)"
%COMMANDER_EXE%,13
Создать папку PHOTO
-1
|
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Nov 08, 2013 01:32 Post subject: |
|
|
sa
Исходный умысел в решении, а не использовании клавиш.
В примере вместо send(`{F7}`) лучше взять tcm(907,1). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Fri Nov 08, 2013 01:40 Post subject: |
|
|
Flasher wrote: | лучше взять |
Я же написал: симметричный пример. Лучше ещё и окно дополнительно указать, которому посылаются нажатия. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Nov 08, 2013 02:23 Post subject: |
|
|
sa wrote: | Лучше ещё и окно дополнительно указать, которому посылаются нажатия. | Я пробовал. Нет реакции. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Fri Nov 08, 2013 09:52 Post subject: |
|
|
MVV wrote: | эта опция нужна лишь для того, чтобы остановить посыл нажатий, если окно станет неактивным.
| О чём и речь: клавиша Enter совсем не безобидна, если окажется в непредназначенном для неё окне.
MVV wrote: | А создавать каталоги действительно лучше через функции оболочки | А внутри архива (например, ZIP) получится? |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Nov 08, 2013 10:07 Post subject: |
|
|
MVV wrote: | создавать каталог путем посыла нажатий клавиш - это маразм | Вот и я о чём.
sa wrote: | А внутри архива (например, ZIP) получится? | А ты попробуй. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
АлексейS
Joined: 07 Nov 2013 Posts: 2 Location: Москва
|
(Separately) Posted: Fri Nov 08, 2013 10:30 Post subject: |
|
|
Как же всё просто, оказывается...
Сосед обращается к соседям за помощью - мол, нож затупился... не режет. А хлебушка бы отрезать.
И тут, как бы ему, но на самом деле между собой остальные начинают рассуждать:
1. Да бруском его заточи. Нету? Пойди купи. Куда? Да хоть в Леруа...
2. А наждачком бы лучше. Дороже? Ну а как ты хотел?
3. Ты просто два ножа друг об дружку потри. Должно помочь.
n. А вообще это делается так: добудь руды, выплавь сталь, ну и ручками... ручками...
А у каждого и ножей, и желания помочь хоть отбавляй.
В чём смысл задавать вопрос знающему? Он ведь знает. У него вопросов нет.
Ошибся я, видимо. Здесь ответа не найти.
Здесь общаются знающие с понимающими. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2692
|
(Separately) Posted: Fri Nov 08, 2013 10:31 Post subject: |
|
|
Даже не представляю, найдутся ли у вас слова для ситуации, когда пользователь собственными руками создаст папку.  |
|
Back to top |
|
 |
Serge Yolkin
Joined: 25 Jul 2009 Posts: 664
|
(Separately) Posted: Fri Nov 08, 2013 10:57 Post subject: |
|
|
АлексейS
В рамках приведённого Вами примера вопрос звучал бы несколько иначе:
- Я тут где-то точилку для ножей надыбал, но она точит, только если нож правильно вставить.
Далее, Вам дают пару-тройку советов, что и как надо в точилке переделать, на что следует:
- Я в точилках не понимаю и понимать не хочу, а раз все такие умные - ну-ка кинулись и точилочку мне переделали. В своё свободное время, вместо той ерунды, которой там занимаетесь.
А о хлебушке речи не было... |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Nov 08, 2013 11:19 Post subject: |
|
|
Serge Yolkin
Та же история в личке. Увидел только обвинения в непонимании задачи и нежелание разбираться с конкретными примерами по ссылкам. Всё свелось к упражнениям в словесности... _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
|