AutoHotkey:正斜杠为" q"在CMD中反转括号

时间:2016-02-09 14:09:33

标签: windows cmd automation macros autohotkey

我正在运行Windows 10 Home Edition,过去几天我一直在使用AutoHotkey v1.1.23.01。我有以下脚本:

:*:dmenv::
Input, machine,,{Enter}
Send, FOR /f "tokens=*" `%i IN ('docker-machine env --shell=cmd %machine%') DO `%i
return

每次我在CMD的上下文中运行此脚本时,我都会收到以下输出:

FOR qf "tokens=*" %i IN )wdocker-machine env --shell=cmd asdw( DO %i

如您所见,正斜杠(/)已替换为q,括号已被反转,单引号(')已替换为{{ 1}}。

谁能告诉我这里可能缺少什么? 我已经尝试过检查其他程序(例如Notepad ++,Explorer等),这个脚本可以在CMD以外的任何地方使用。

我已尝试使用AHK文档建议的反引号转义字符,并通过Notepad ++将w文件转换为UTF-8。 此外,我尝试过使用诸如.ahkchr(47)之类的解决方法而没有任何运气。

最后注意事项:

我刚刚意识到,当我将语言更改为HEB并编写Clipboard = code来运行脚本时,它可以正常运行:dmenv

为什么会这样?

1 个答案:

答案 0 :(得分:2)

您的键盘布局不是英文,但cmd.exe是。

如果你切换窗户'在运行send之前,语言为英语,它可以正常工作(请注意,切换语言可以通过ahk / dll调用完成)

但是,您可以使用以下解决方法:(在Win10上测试)

:*:dmenv::
Input, machine,,{Enter}
text = FOR /f "tokens=*" `%i IN ('docker-machine env --shell=cmd %machine%') DO `%i
clp_bck := clipboardAll
clipboard := text
send ^v ; use ctrl v to send the text
clipboard := clp_bck
return