Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Копирование И Вставка Файлов
saraconor
сообщение 27.5.2011, 18:06
Сообщение #1


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



задача: есть файл 1.cdr он лежит в фиксированной папке,
как сделать так чтобы пилот в любой открытой папке на компьютере создавал копию этого файла?
открываю папку, далее действует такой скрипт:
Код
set clipboard 
wait 100
sendex @{tab}
wait 100
sendex {f4}
sendex ^{a}
wait 50
sendex ^{c}
wait 270
get clipboard $путь

итак, мы имеем путь к этой папке, а дальше как быть?
(пробывал копировать bat файлом, но он плохо воспринимает кирилицу и длинные имена)

может есть возможность с помощью пилота положить файл прямо в буфер обмена?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 28.5.2011, 13:25
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



во 1 ктрл+с ктрл+v никто не отменял.
во 2 батники на ура работают и с кирилицей и с дилнными именами. Адрес должен быть в кавычках, для кирилицы используй chcp 1251.

https://forum.uokit.com/index.php?showt...21260&st=0# тут есть пара фишек с батником.

Сообщение отредактировал DarkMaster - 28.5.2011, 14:07


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 28.5.2011, 18:18
Сообщение #3


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



только вот бат файл необходимо создать массивом из пилота, а в пилоте не дается выбор chcp 1251.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 29.5.2011, 4:16
Сообщение #4


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



а что мешает в батнике сделать строку chcp 1251?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 29.5.2011, 12:42
Сообщение #5


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



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

копирую батником:
copy "E:\скачивание\гдето там" "F:\stop"
в notepad++ я поставил кодировку "кириллица \ Windows-1251"
не копирует из папки "гдето там" в папку "stop", что я не так делаю?
вообще задача такая: нужно чтобы в открытой папке при определенной комбинации клавиш возникала копия одного файла.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 29.5.2011, 12:47
Сообщение #6


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



я же даже ссылку дал в которой ты не стал разбираться. Не спорю конструкция там достаточно сложная, но в ней освещено 90% граблей с батниками. Содержание твоего батника:
chcp 1251
copy ....

в батнике 2 строки сделай и все.

Сообщение отредактировал DarkMaster - 29.5.2011, 12:48


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 29.5.2011, 13:41
Сообщение #7


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



спасибо) все заработало)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 29.5.2011, 19:47
Сообщение #8


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



Код
set #var windowfromcursor
set #handle windowfromcursor
set workwindow #handle

wait 100
sendex @{tab}
wait 100
sendex {f4}
sendex ^{a}
wait 300
sendex ^{c}
wait 400
get clipboard $путь
sendex {f6}
set $файл E:\скачивание\гдето там
set $1 copy
set $2 "

set %ar [1 1] chcp 1251
set %ar [2 1] $1 $2$путь

save_array %ar E:\soft\запуск.txt
terminate uopilot


почему вместо текстового файла с таким содержанием:
chcp 1251
copy "E:\soft (путь был скопирован в буфер)

получается:
chcp 1251
copy "$путь

при этом, если сделать вот так: set %ar [1 1] $путь
то в файле будет нормально прописан захваченый прежде путь?




кстати, периодически пилот вместо нормального копирования выделеного текста (ctrl+a) в буфер обмена, копирует вот такую хрень
E:\soft\???????\000 ???????\??????
похоже косяки с кирилицей.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 29.5.2011, 22:59
Сообщение #9


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Код
set %ar [2 1] $1 $2$путь

между всеми переменными должен быть пробел
$2 $путь
слепить не получится


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 30.5.2011, 4:08
Сообщение #10


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



Цитата
$2 $путь
слепить не получится

строковые переменные слепляются на ура.

Скорее всего проблемы в кавычках. Смотри ту ссылку, что я тебе давал. Я там очень долго и муторно выяснял каким образом влепить кавычки в нужных местах, чтобы пилот не отсекал куски строк и не воспринимал при этом переменные обычным текстом. Делай по той же схеме или изобретай свое.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 30.5.2011, 9:44
Сообщение #11


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Цитата(DarkMaster @ 30.5.2011, 4:08) *

строковые переменные слепляются на ура

хм. я не знал что такая конструкция будет работать =/
Код
$2$путь


З.Ы. Действительно работает, но с кавычками явно есть проблемы...
Код
set $a Васи
set $b лий
msg $a$b


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 31.5.2011, 10:11
Сообщение #12


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



а как с E:\soft\???????\000 ???????\?????? быть?
иногда копирует нормально путь к файлу, а иногда копирует вот такое.

кое что выяснил, если копировать путь к локальной папке с сервера, то возможно будут ???, а если копировать путь, зайдя в эту папку по ссылочке на своем компе, то все нормально скопируется. С чем это связано, и как можно исправить?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 31.5.2011, 17:34
Сообщение #13


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



связано это с кодировками. почему так происходит затрудняюсь сказать. Рекомендую для начала выяснить в какой кодировке попадают к вам данные. Возможно вам поможет программа "Штирлиц". Либо ищите какие-то онлайн сервисы по определению кодировок. Дальнейшие действия - вместо chcp 1251 ставить нужную кодировку.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 31.5.2011, 21:15
Сообщение #14


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



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

ВЫЯСНИЛ В ЧЕМ ПРИЧИНА!
оказывается тут играет роль раскладка клавиатуры! если стоит EN, то скопирует путь с русскими названиями с ошибками! а если стоит RU, то соответственно нет.
Теперь вопрос) собтсвенно как пилоту дать понять что в данный момент стоит английская раскладка, и нужно ее поменять?)
вопрос отпал, оказалось что чисто русскую раскладку можно повесить на хоткей. думаю дальше)

я чесно попытался понять твои выкладки по батникам, но безуспешно. чую тему затрагивает этот гайд:
Код
// БАГ:// Если в имени запустившего файла содержатся пробелы,
// то корректно разделить имя файла и заголовок окна не
// возможно. В таком случае первое слово имени файла будет
// содержаться в 12 элементе, как и положено, а остальное
// имя файла будет содержаться в названии окна. Например:
// winStatus [ 1 12 ] uopilot// winStatus [ 1 13 ] 2 18 8 UoPilot  v2 18 8   WK
но каким боком, понять не могу(
вот пример
Код
set #handle windowfromcursor
set workwindow #handle      // привязка к открытому окну
sendex @{tab}    // перепрыгиваем обратно на открытую папку
wait 100
sendex ^{6}      // переводим раскладку на русскую
wait 200
sendex {f4}
sendex ^{a}
wait 300
sendex ^{c}       // копируем путь к папке в буфер
wait 400
get clipboard $путь
sendex {f6}
set $1 copy "
set %ar [2 1] $1 $путь
save_array %ar C:\........\запуск.txt
wait 100
terminate uopilot
как надо пописать $1 и $путь, чтобы они корректно отобразились в текстовом файле?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 31.5.2011, 22:56
Сообщение #15


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



Цитата
// БАГ:// Если в имени запустившего файла содержатся пробелы,

Это про парсинг. К батникам отношения не имеет по сути никакого. Там строка с 14 параметрами была и ее надо было запихать в 14 переменных. Некоторые параметры могли содержать пробелы, как следствие пилот видел не 14, а больше и излишки прилеплясь не в то место. Но собственно к тебе это не имеет никакого отношения.
Цитата
как надо пописать $1 и $путь, чтобы они корректно отобразились в текстовом файле?

Посмотри в полезных советах. Там есть способ вытащить текущую раскладку клавиатуры в неописанных командах. Думаю поможет.

Сообщение отредактировал DarkMaster - 31.5.2011, 22:57


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 31.5.2011, 23:18
Сообщение #16


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



Цитата(DarkMaster @ 31.5.2011, 23:56) *
Посмотри в полезных советах. Там есть способ вытащить текущую раскладку клавиатуры в неописанных командах. Думаю поможет.

c раскладкой вопрос решен, как вписать строковые переменные то, чтобы они отобразились правильно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 31.5.2011, 23:47
Сообщение #17


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



посмотрел все полезные советы, не нашел, помоги пожалуйсто
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 1.6.2011, 0:18
Сообщение #18


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



Команды отсутствующие в хелпе
'set $var GetLayout' - возвращает раскладку клавиатуры в переменную $var. Хочу обратить внимание на то что возвращаются только последние 4 числа из 8 определяющих раскладку, так же не смотря на то, что стандартный русский и английский имеют значения 00000419 и 00000409, они являются шестнадцатеричными и другие раскладки могут содержать буквы A-F, следовательно стоит использовать строковую переменную ($), а не числовую (#). В случае не стандарной раскладки настоятельно рекомендую выполнить:
set $a GetLayout
msg $a
т.к. значение может быть неожиданным, например для языка a0000419 раскладка возвращается не 0419, а F0C0.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
saraconor
сообщение 1.6.2011, 9:04
Сообщение #19


***

Novice
Сообщений: 72
Регистрация: 30.10.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.180



я же писал что вопрос с раскладкой уже решен.
проблема осталась в компоновке переменных в массиве:

set $1 copy "
get clipboard $2
set %ar [1 1] $1 $2

тут вместо копированого буфера в $2 остается просто "$2"
если поменять переменные местами то косяк будет со второй переменной. а первая нормально пропишется.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 1.6.2011, 15:59
Сообщение #20


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27738
Пользователь №: 11.279



Честно не помню я что там понаделал. Я просидел тогда сутки и готов уже был головой об стенку биться с этими кавычками. Попробуй просто две пары поставить - винда вроде сжирает.
set %a [ 1 1 ] ""qwe
set %a [ 1 2 ] asd""
msg %a [ 1 ]
stop_script


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.4.2024, 10:23
Designed by Nickostyle