Я запускаю Windows 10 Home Edition, и я использую AutoHotkey v1.1.23.01 в течение последних нескольких дней. У меня есть следующий сценарий:AutoHotkey: Прямые косые черты как «q» и обратная скобка в CMD
:*:dmenv::
Input, machine,,{Enter}
Send, FOR /f "tokens=*" `%i IN ('docker-machine env --shell=cmd %machine%') DO `%i
return
Каждый раз, когда я запускаю этот скрипт из контекста ЦМД, я получаю следующий результат:
FOR qf "tokens=*" %i IN)wdocker-machine env --shell=cmd asdw(DO %i
Как вы можете видеть, слэш (/
) был заменен на q
, скобки были отменены, а одинарные кавычки ('
) были заменены на w
.
Может ли кто-нибудь сказать, что мне здесь не хватает? Я уже пробовал проверять другие программы (например, Notepad ++, Explorer и т. Д.), И этот скрипт работает везде, кроме CMD.
Я попытался ускользнуть от символов, используя обратную схему, как это предлагает документация AHK, и преобразование файла в UTF-8 через Notepad ++. Кроме того, я пробовал использовать обходы, такие как chr(47)
и Clipboard = code
без всякой удачи.
Final Примечание:
Я просто понял, что, когда я изменить свой язык к СЭП, и писать dmenv
, чтобы запустить сценарий, он работает: FOR /f "tokens=*" %i IN ('docker-machine env --shell=cmd asdf') DO %i
Почему это происходит?
Благодарим за быстрый ответ, но CMD не вставляет содержимое буфера обмена. Написание 'dmenv' в CMD после обновления моего скрипта с вашим предложением просто выводит:'^v' – spongeworthy
@GSWV Затем вместо '^ v' используйте send' {ctrl v} 'или любую команду, которая запускает команду вставки. – 2501
После небольшого поиска, основанного на ответе @ 2501, я нашел следующий формат, который работал для меня в cmd: 'send^{vk56}; ключевой идентификатор, используемый для решения проблемы с выпуском cmd. – spongeworthy