我正在运行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。
此外,我尝试过使用诸如.ahk
和chr(47)
之类的解决方法而没有任何运气。
最后注意事项:
我刚刚意识到,当我将语言更改为HEB并编写Clipboard = code
来运行脚本时,它可以正常运行:dmenv
为什么会这样?
答案 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