如何在 autohotkey v2 的运行命令中使用多个参数

问题描述

我将自动热键从 v1 更新到 v2

appskey::run,Wscript C:\folder\script.vbs "netsh wlan disconnect"
return

上述命令在 v1 中运行良好以在 v2 中中断 我试过了:

appskey::run "Wscript C:\folder\script.vbs" "netsh wlan disconnect"

抛出错误 - 文件扩展名“.vsnetsh”没有脚本引擎

appskey::Run "Wscript C:\folder\script.vbs netsh wlan disconnect"

它在后台打开但不工作

请更正以上代码,使其针对多个参数运行。

解决方法

在 v2 中,一切都被视为表达式。
您在此处的运行命令中执行的操作:
run "Wscript C:\folder\script.vbs" "netsh wlan disconnect"
将两个字符串连接在一起,因此 Run 函数接收的第一个(也是唯一的)参数是:
"Wscript C:\folder\script.vbsnetsh wlan disconnect"
因此,您正在尝试运行一个名为 script.vbsnetsh 的文件并向其中传递两个参数,wlandisconnect

这里:
Run "Wscript C:\folder\script.vbs netsh wlan disconnect"
您正在运行正确的脚本,但您传递了三个参数,netshwlandisconnect

您要做的是运行一个名为 script.vbs 的文件,并只向其中传入一个参数,该参数为 netsh wlan disconnect
您的参数包含空格,因此您必须将参数用 " 括起来以表明它只是一个参数,就像您在 v1 旧脚本中所做的一样。

所以正确的版本是:

Run "Wscript `"C:\folder\script.vbs`" `"netsh wlan disconnect`""

您在 v2(docs) 中使用 `" 转义引号。
并且不需要在文件路径周围添加引号,因为您的文件路径中没有空格,但很容易有空格,因此我添加了它们以进行更好的演示。