AutoHotKeys 中使用 ControlSend 发送文本的方法
Way to use ControlSend to send text in AutoHotKeys
我只是制作一个脚本,通过 Windows 中的命令提示符自动更新我的 GitHub 存储库。
不幸的是,命令提示符打开后的第一行代码不会发送。我相信这是因为字符串包含逗号,但我找不到使“pushd D:\Media Lists\Website、Blog 和 Wordpress_thefloodplains\thefloodshark.Github.io”发送为输入 {Enter} 之前的字符串,如下面的代码:
run cmd.exe
WinWait, ahk_exe cmd.exe ;
ControlSend, , 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
就目前而言,脚本会运行,但它不会在第一行输入我的 GitHub 存储库位置。不过,其余的 ControlSend 输入工作。
我们将不胜感激任何想法。
问题确实是你的路径有逗号,而你没有转义它们 (`,
)。
您可以在 AHK here.
中阅读有关转义的内容
但实际上,这只是指定遗留字符串时的一个问题。
相反,我想说的是你真正想做的只是 use the expression syntax and specify the string explicitly,像这样:
ControlSend, , % "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
现在换个更不相关的说明,这个实现确实是 bad/low 技术。
实际上,您只想为命令行和 运行 创建一个实际的脚本。由于您似乎在使用 cmd,因此您可以创建一个简单的 batch script,例如:
pushd D:\Media Lists\Website, Blog, and Wordpress\_thefloodplains\thefloodshark.Github.io
git add .
git commit -m auto
git push
然后 运行 它与 AHK 通过使用例如Run
(docs):
Run, % "C:\Users\User\Desktop\my cool scripts\script.bat", % "C:\Users\User\Desktop\my cool project folder"
我只是制作一个脚本,通过 Windows 中的命令提示符自动更新我的 GitHub 存储库。
不幸的是,命令提示符打开后的第一行代码不会发送。我相信这是因为字符串包含逗号,但我找不到使“pushd D:\Media Lists\Website、Blog 和 Wordpress_thefloodplains\thefloodshark.Github.io”发送为输入 {Enter} 之前的字符串,如下面的代码:
run cmd.exe
WinWait, ahk_exe cmd.exe ;
ControlSend, , 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
就目前而言,脚本会运行,但它不会在第一行输入我的 GitHub 存储库位置。不过,其余的 ControlSend 输入工作。
我们将不胜感激任何想法。
问题确实是你的路径有逗号,而你没有转义它们 (`,
)。
您可以在 AHK here.
但实际上,这只是指定遗留字符串时的一个问题。
相反,我想说的是你真正想做的只是 use the expression syntax and specify the string explicitly,像这样:
ControlSend, , % "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
现在换个更不相关的说明,这个实现确实是 bad/low 技术。
实际上,您只想为命令行和 运行 创建一个实际的脚本。由于您似乎在使用 cmd,因此您可以创建一个简单的 batch script,例如:
pushd D:\Media Lists\Website, Blog, and Wordpress\_thefloodplains\thefloodshark.Github.io
git add .
git commit -m auto
git push
然后 运行 它与 AHK 通过使用例如Run
(docs):
Run, % "C:\Users\User\Desktop\my cool scripts\script.bat", % "C:\Users\User\Desktop\my cool project folder"