Показать полную графическую версию : [решено] Кавычки, пробелы, русские буквы
SharkyEXE
04-05-2014, 00:09
Здравствуйте.
Есть такая проблемка: научите меня, пожалуйста, если у кого есть время, возможность, желание, как правильно расставлять кавычки в 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?
Спасибо.
Как-то так (сама необходимость наличия кавычек не проверялась):
FileInstall("""block bl ock - копия ко пия.exe""", """" & @UserProfileDir & "\block bl ock - копия ко пия.exe""")
Как дело обстоит с кодировкой в autoit - можно ли как нибудь принудительно, глобально, для всего кода задать кодировку OEM-866 (русская) или autoit нормально дружит с русскими путями, содержащими пробелы, при выполнении файлов? »
Для чего Вы увязываете в Вашем вопросе кодировку и пробелы?
В общем мне надо сделать 100%но универсальный файл, как для русский путь, так и английский путь, как слова с пробелами, так и слова без пробелов - в cmd это решалось взять путь в кавычки+сохранить файл в кодировке OEM-866 (русская) »
Что мешает просто взять и проверить — кодировки, кавычки?
SharkyEXE
04-05-2014, 06:16
(сама необходимость наличия кавычек не проверялась) »
Не поверите, кавычки для меня не помеха, но они помогают избавиться от проблем, что в пути будут пробелы.
Для чего Вы увязываете в Вашем вопросе кодировку и пробелы? »
Да просто это самое проблемное место в cmd файлах лично для меня, точнее русские буквы и наличие пробелов.
Если в cmd файле есть русские буквы в путях, названиях файлов+наличие пробелов, а в cmd файле нету кавычек+кодировка не OEM-866, то такой cmd файл не будет работать, поэтому для всех моих cmd файлов я везде ставлю кавычки+везде кодировка OEM-866, пусть даже пути и названия файлов английские+даже если нету пробелов
Что мешает просто взять и проверить — кодировки, кавычки? »
Да вот мне легче один раз кавычки правильно расставить+принудительно выставить кодировку OEM-866 и забыть про проблемы. Вот поэтому я и интересуюсь, возможно или нет принудительно в autoit выставить глобальную кодировку для всего au3 файла как OEM-866 (аналог сохранить cmd файл в OEM-866 кодировке)
SharkyEXE
04-05-2014, 08:30
FileInstall("""block bl ock - копия ко пия.exe""", """" & @UserProfileDir & "\block bl ock - копия ко пия.exe""") »
У меня система Win 7 Ult X64 SP1, выдется такое: http://yadi.sk/d/CWW435CtNy8pf
Не поверите, кавычки для меня не помеха, но они помогают избавиться от проблем, что в пути будут пробелы. »
Вы не поняли меня — я не проверял само Ваше утверждение о необходимости обрамляющих кавычек при наличии пробелов в имени/пути для данной команды.
Да просто это самое проблемное место в cmd файлах лично для меня, точнее русские буквы и наличие пробелов.
Если в cmd файле есть русские буквы в путях, названиях файлов+наличие пробелов, а в cmd файле нету кавычек+кодировка не OEM-866, то такой cmd файл не будет работать, поэтому для всех моих cmd файлов я везде ставлю кавычки+везде кодировка OEM-866, пусть даже пути и названия файлов английские+даже если нету пробелов »
В пакетных файлах нет понятия «строки», в отличие от того же AutoIt, WSH и т.п.
Да вот мне легче один раз кавычки правильно расставить+принудительно выставить кодировку OEM-866 и забыть про проблемы. Вот поэтому я и интересуюсь, возможно или нет принудительно в autoit выставить глобальную кодировку для всего au3 файла как OEM-866 (аналог сохранить cmd файл в OEM-866 кодировке) »
Зачем, для чего Вам нужна OEM/866?!
У меня система Win 7 Ult X64 SP1, выдется такое: http://yadi.sk/d/CWW435CtNy8pf »
Пришлось-таки читать документацию по команде. Итак, ровно то, о чём я говорил выше: никакие обрамляющие кавычки не нужны ни в первом, ни во втором параметрах. И имя файла незачем дублировать. Т.е.:
FileInstall("block bl ock - копия ко пия.exe", @UserProfileDir & "\")
SharkyEXE
04-05-2014, 10:37
Зачем, для чего Вам нужна OEM/866?! »
Ровно для того же, для чего и в cmd файлах - чтобы русские названия файлов, русские пути файлов были русскими, а не кракорябрами.
Только я не знаю, в autoit русские названия файлов, русские пути файлов будут русскими или кракозябры?
SharkyEXE
04-05-2014, 11:16
FileInstall("block bl ock - копия ко пия.exe", @UserProfileDir & "\") »
Та жа самая ошибка http://yadi.sk/d/CWW435CtNy8pf, можете проверить сами
SharkyEXE, я проверял перед тем, как писать.
http://i.imgur.com/2PbpXaB.png
http://i.imgur.com/b2ghbgc.png
Только я не знаю, в autoit русские названия файлов, русские пути файлов будут русскими или кракозябры? »
Русскими. Единственное, для чего может понадобится перекодировка (а не сохранение исходного кода) в OEM/866 — вывод на консоль.
SharkyEXE
04-05-2014, 15:53
1) отсюда http://www.autoitscript.com/site/autoit/downloads/ я скачал файл http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe (AutoIt Full Installation, 3.3.10.2)
2) установил файл http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-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, которую установил я, у меня проблема.
Спасибо.
SharkyEXE, установил текущую версию — 3.3.10.2. Компилируется корректно.
Антивирус у Вас так шалить не может? В безопасном режиме пробовали?
SharkyEXE
04-05-2014, 17:54
Антивирус у Вас так шалить не может? »
У меня его нету.
В безопасном режиме пробовали? »
Нет, не пробовал.
Upd.
Все разрешилось само-собой, я так и не понял, что это было, все компилится на 3.3.10.2
Спасибо.
Upd.
Все разрешилось само-собой, я так и не понял, что это было, »
Я тоже ;).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.