AutoHotkey中ControlSend发送含逗号路径文本失败如何解决?
问题根因
AutoHotkey 默认将逗号识别为参数分隔符,你路径中的逗号会导致ControlSend的参数被提前截断,因此无法完整发送路径命令。
解决方案1:强制纯文本发送(最小改动)
在发送的内容前添加{Text}标记,强制AHK原样发送所有字符,无需转义逗号或其他特殊符号:
run cmd.exe WinWait, ahk_exe cmd.exe ; ControlSend, , {Text}pushd D:\Media Lists\Website, Blog, and Wordpress\_thefloodplains\thefloodshark.Github.io{Enter}, ahk_exe cmd.exe sleep, 2000 ControlSend, , git add .{Enter}, ahk_exe cmd.exe sleep, 2000 ControlSend, , git commit -m auto{Enter}, ahk_exe cmd.exe sleep, 2000 ControlSend, , git push{Enter}, ahk_exe cmd.exe sleep, 3000 Exit
{Text}是AHK v1.1.27+版本支持的发送模式,会忽略所有按键特殊标记,原样输出字符串,完美规避路径中逗号、空格等特殊符号的解析问题。
解决方案2:直接通过cmd参数执行(更稳定)
不需要模拟按键发送,直接把所有命令作为参数传给cmd执行,完全规避发送类指令的兼容性问题,执行效率更高:
Run cmd.exe /c "pushd D:\Media Lists\Website, Blog, and Wordpress\_thefloodplains\thefloodshark.Github.io && git add . && git commit -m auto && git push" Exit
内容的提问来源于stack exchange,提问作者wbhyatt
相关产品推荐
相关产品推荐

