Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Кавычки, пробелы, русские буквы (http://forum.oszone.net/showthread.php?t=281793)

SharkyEXE 04-05-2014 00:09 2346730

Кавычки, пробелы, русские буквы
 
Здравствуйте.
Есть такая проблемка: научите меня, пожалуйста, если у кого есть время, возможность, желание, как правильно расставлять кавычки в autoite?
Например, вот так:
Код:

FileInstall("block bl ock - копия ко пия.exe", ""@UserProfileDir" & "\block bl ock - копия ко пия.exe"")
выдает ошибку при компилировании, а почему - я не знаю, кавычки я дублировал

Мне надо, чтобы путь, возвращаемый @UserProfileDir, был с кавычками.
Например, если @UserProfileDir=C:\block bl ock - копия ко пия, то C:\block bl ock - копия ко пия надо взять в кавычки
Иначе, если без кавычек, будет так C:\block - обреззка пути до первого пробела, а мне надо, чтобы полностью было C:\block bl ock - копия ко пия

Попутный вопрос: в cmd русскоязычные пути надо cmd файл сохранять в кодировке OEM-866 (русская) при помощи программы AkelPad или другой программы

Как дело обстоит с кодировкой в autoit - можно ли как нибудь принудительно, глобально, для всего кода задать кодировку OEM-866 (русская) или autoit нормально дружит с русскими путями, содержащими пробелы, при выполнении файлов?

В общем мне надо сделать 100%но универсальный файл, как для русский путь, так и английский путь, как слова с пробелами, так и слова без пробелов - в cmd это решалось взять путь в кавычки+сохранить файл в кодировке OEM-866 (русская)

А как это делается в autoite?

Спасибо.

Iska 04-05-2014 00:19 2346736

Как-то так (сама необходимость наличия кавычек не проверялась):
Код:

FileInstall("""block bl ock - копия ко пия.exe""", """" & @UserProfileDir & "\block bl ock - копия ко пия.exe""")
Цитата:

Цитата SharkyEXE
Как дело обстоит с кодировкой в autoit - можно ли как нибудь принудительно, глобально, для всего кода задать кодировку OEM-866 (русская) или autoit нормально дружит с русскими путями, содержащими пробелы, при выполнении файлов? »

Для чего Вы увязываете в Вашем вопросе кодировку и пробелы?

Цитата:

Цитата SharkyEXE
В общем мне надо сделать 100%но универсальный файл, как для русский путь, так и английский путь, как слова с пробелами, так и слова без пробелов - в cmd это решалось взять путь в кавычки+сохранить файл в кодировке OEM-866 (русская) »

Что мешает просто взять и проверить — кодировки, кавычки?

SharkyEXE 04-05-2014 06:16 2346767

Цитата:

Цитата Iska
(сама необходимость наличия кавычек не проверялась) »

Не поверите, кавычки для меня не помеха, но они помогают избавиться от проблем, что в пути будут пробелы.
Цитата:

Цитата Iska
Для чего Вы увязываете в Вашем вопросе кодировку и пробелы? »

Да просто это самое проблемное место в cmd файлах лично для меня, точнее русские буквы и наличие пробелов.
Если в cmd файле есть русские буквы в путях, названиях файлов+наличие пробелов, а в cmd файле нету кавычек+кодировка не OEM-866, то такой cmd файл не будет работать, поэтому для всех моих cmd файлов я везде ставлю кавычки+везде кодировка OEM-866, пусть даже пути и названия файлов английские+даже если нету пробелов
Цитата:

Цитата Iska
Что мешает просто взять и проверить — кодировки, кавычки? »

Да вот мне легче один раз кавычки правильно расставить+принудительно выставить кодировку OEM-866 и забыть про проблемы. Вот поэтому я и интересуюсь, возможно или нет принудительно в autoit выставить глобальную кодировку для всего au3 файла как OEM-866 (аналог сохранить cmd файл в OEM-866 кодировке)

SharkyEXE 04-05-2014 08:30 2346783

Цитата:

Цитата Iska
FileInstall("""block bl ock - копия ко пия.exe""", """" & @UserProfileDir & "\block bl ock - копия ко пия.exe""") »

У меня система Win 7 Ult X64 SP1, выдется такое: http://yadi.sk/d/CWW435CtNy8pf

Iska 04-05-2014 10:33 2346822

Цитата:

Цитата SharkyEXE
Не поверите, кавычки для меня не помеха, но они помогают избавиться от проблем, что в пути будут пробелы. »

Вы не поняли меня — я не проверял само Ваше утверждение о необходимости обрамляющих кавычек при наличии пробелов в имени/пути для данной команды.

Цитата:

Цитата SharkyEXE
Да просто это самое проблемное место в cmd файлах лично для меня, точнее русские буквы и наличие пробелов.
Если в cmd файле есть русские буквы в путях, названиях файлов+наличие пробелов, а в cmd файле нету кавычек+кодировка не OEM-866, то такой cmd файл не будет работать, поэтому для всех моих cmd файлов я везде ставлю кавычки+везде кодировка OEM-866, пусть даже пути и названия файлов английские+даже если нету пробелов »

В пакетных файлах нет понятия «строки», в отличие от того же AutoIt, WSH и т.п.

Цитата:

Цитата SharkyEXE
Да вот мне легче один раз кавычки правильно расставить+принудительно выставить кодировку OEM-866 и забыть про проблемы. Вот поэтому я и интересуюсь, возможно или нет принудительно в autoit выставить глобальную кодировку для всего au3 файла как OEM-866 (аналог сохранить cmd файл в OEM-866 кодировке) »

Зачем, для чего Вам нужна OEM/866?!

Цитата:

Цитата SharkyEXE
У меня система Win 7 Ult X64 SP1, выдется такое: http://yadi.sk/d/CWW435CtNy8pf »

Пришлось-таки читать документацию по команде. Итак, ровно то, о чём я говорил выше: никакие обрамляющие кавычки не нужны ни в первом, ни во втором параметрах. И имя файла незачем дублировать. Т.е.:
Код:

FileInstall("block bl ock - копия ко пия.exe", @UserProfileDir & "\")

SharkyEXE 04-05-2014 10:37 2346825

Цитата:

Цитата Iska
Зачем, для чего Вам нужна OEM/866?! »

Ровно для того же, для чего и в cmd файлах - чтобы русские названия файлов, русские пути файлов были русскими, а не кракорябрами.
Только я не знаю, в autoit русские названия файлов, русские пути файлов будут русскими или кракозябры?

SharkyEXE 04-05-2014 11:16 2346836

Цитата:

Цитата Iska
FileInstall("block bl ock - копия ко пия.exe", @UserProfileDir & "\") »

Та жа самая ошибка http://yadi.sk/d/CWW435CtNy8pf, можете проверить сами

Iska 04-05-2014 15:22 2346974

SharkyEXE, я проверял перед тем, как писать.





Цитата:

Цитата SharkyEXE
Только я не знаю, в autoit русские названия файлов, русские пути файлов будут русскими или кракозябры? »

Русскими. Единственное, для чего может понадобится перекодировка (а не сохранение исходного кода) в OEM/866 — вывод на консоль.

SharkyEXE 04-05-2014 15:53 2346989

1) отсюда http://www.autoitscript.com/site/autoit/downloads/ я скачал файл http://www.autoitscript.com/cgi-bin/...t-v3-setup.exe (AutoIt Full Installation, 3.3.10.2)
2) установил файл http://www.autoitscript.com/cgi-bin/...t-v3-setup.exe тупо везде жав Далее
3) сделал Пуск -> Все программы -> AutoIt v3 -> SciTE Script Editor
4) ввел строку
Код:

FileInstall("block bl ock - копия ко пия.exe", @UserProfileDir & "\")
5) нажал Tools -> Compile
6) вывалилась ошибка: http://yadi.sk/d/CWW435CtNy8pf

Iska
Пожалуйста, если у Вас есть время, возможность, желание - поделитесь со мною тем дистрибутивом autoit, которым пользуетесь Вы, что у Вас все нормально.
Вполне возможно, что новые версии autoit всяко хуже, чем Ваша версия, потому что у Вас все нормально, а на самой последней версии autoit, которую установил я, у меня проблема.

Спасибо.

Iska 04-05-2014 16:31 2346997

SharkyEXE, установил текущую версию — 3.3.10.2. Компилируется корректно.

Антивирус у Вас так шалить не может? В безопасном режиме пробовали?

SharkyEXE 04-05-2014 17:54 2347047

Цитата:

Цитата Iska
Антивирус у Вас так шалить не может? »

У меня его нету.
Цитата:

Цитата Iska
В безопасном режиме пробовали? »

Нет, не пробовал.

Upd.
Все разрешилось само-собой, я так и не понял, что это было, все компилится на 3.3.10.2
Спасибо.

Iska 05-05-2014 00:40 2347071

Цитата:

Цитата SharkyEXE
Upd.
Все разрешилось само-собой, я так и не понял, что это было, »

Я тоже ;).


Время: 20:42.

Время: 20:42.
© OSzone.net 2001-