Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Создание папки с заданным именем
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
АлексейS



Joined: 07 Nov 2013
Posts: 2
Location: Москва

Post (Separately) Posted: Thu Nov 07, 2013 17:22    Post subject: Создание папки с заданным именем Reply with quote

Уважаемые форумчане!
Я не спец в написании программного кода скриптов и обращаюсь за помощью.
Имеем: 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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 07, 2013 18:32    Post subject: Reply with quote

Автоматизированное создание папок
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2692

Post (Separately) Posted: Thu Nov 07, 2013 21:13    Post subject: Reply with quote

АлексейS
Предлагаю использовать для отправки последовательности нажатий клавиш функцию send из утилиты TCFS2. Она позволяет посылать символы с сохранением регистра и раскладки (см. модификатор ~). То есть строку параметров (StrPar) для TCFS2 готовить в скрипте (конечно в случае, если возможностей самой TCFS2 для выполнения задачи недостаточно) и вызывать утилиту как-то так:
Code:
WScript.CreateObject("WScript.Shell").Exec "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe" & StrPar
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Nov 07, 2013 21:23    Post subject: Reply with quote

sa
Зачем навязывать то, что по определению хуже по реализации? Есть нативный метод создания папки в FSO, её и использовать. Либо md. Примеров хватает.

P.S.: У нас тут в личке разбор полётов. Повременим, пока человек разберётся, что к чему.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2692

Post (Separately) Posted: Thu Nov 07, 2013 21:45    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Nov 08, 2013 01:32    Post subject: Reply with quote

sa
Исходный умысел в решении, а не использовании клавиш.

В примере вместо send(`{F7}`) лучше взять tcm(907,1).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2692

Post (Separately) Posted: Fri Nov 08, 2013 01:40    Post subject: Reply with quote

Flasher wrote:
лучше взять

Я же написал: симметричный пример. Лучше ещё и окно дополнительно указать, которому посылаются нажатия.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Nov 08, 2013 02:23    Post subject: Reply with quote

sa wrote:
Лучше ещё и окно дополнительно указать, которому посылаются нажатия.
Я пробовал. Нет реакции.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Fri Nov 08, 2013 09:37    Post subject: Reply with quote

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

А создавать каталоги действительно лучше через функции оболочки, куда можно передать имя целиком, создавать каталог путем посыла нажатий клавиш - это маразм.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2692

Post (Separately) Posted: Fri Nov 08, 2013 09:52    Post subject: Reply with quote

MVV wrote:
эта опция нужна лишь для того, чтобы остановить посыл нажатий, если окно станет неактивным.
О чём и речь: клавиша Enter совсем не безобидна, если окажется в непредназначенном для неё окне.
MVV wrote:
А создавать каталоги действительно лучше через функции оболочки
А внутри архива (например, ZIP) получится?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Nov 08, 2013 10:07    Post subject: Reply with quote

MVV wrote:
создавать каталог путем посыла нажатий клавиш - это маразм
Вот и я о чём.

sa wrote:
А внутри архива (например, ZIP) получится?
А ты попробуй.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
АлексейS



Joined: 07 Nov 2013
Posts: 2
Location: Москва

Post (Separately) Posted: Fri Nov 08, 2013 10:30    Post subject: Reply with quote

Как же всё просто, оказывается...

Сосед обращается к соседям за помощью - мол, нож затупился... не режет. А хлебушка бы отрезать.
И тут, как бы ему, но на самом деле между собой остальные начинают рассуждать:
1. Да бруском его заточи. Нету? Пойди купи. Куда? Да хоть в Леруа...
2. А наждачком бы лучше. Дороже? Ну а как ты хотел?
3. Ты просто два ножа друг об дружку потри. Должно помочь.
n. А вообще это делается так: добудь руды, выплавь сталь, ну и ручками... ручками...

А у каждого и ножей, и желания помочь хоть отбавляй.

В чём смысл задавать вопрос знающему? Он ведь знает. У него вопросов нет.

Ошибся я, видимо. Здесь ответа не найти.

Здесь общаются знающие с понимающими.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2692

Post (Separately) Posted: Fri Nov 08, 2013 10:31    Post subject: Reply with quote

Quote:
это маразм
Даже не представляю, найдутся ли у вас слова для ситуации, когда пользователь собственными руками создаст папку. Smile
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 25 Jul 2009
Posts: 664

Post (Separately) Posted: Fri Nov 08, 2013 10:57    Post subject: Reply with quote

АлексейS
В рамках приведённого Вами примера вопрос звучал бы несколько иначе:
- Я тут где-то точилку для ножей надыбал, но она точит, только если нож правильно вставить.
Далее, Вам дают пару-тройку советов, что и как надо в точилке переделать, на что следует:
- Я в точилках не понимаю и понимать не хочу, а раз все такие умные - ну-ка кинулись и точилочку мне переделали. В своё свободное время, вместо той ерунды, которой там занимаетесь.
А о хлебушке речи не было...
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Nov 08, 2013 11:19    Post subject: Reply with quote

Serge Yolkin
Та же история в личке. Увидел только обвинения в непонимании задачи и нежелание разбираться с конкретными примерами по ссылкам. Всё свелось к упражнениям в словесности...
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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