You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AutoHotkey中查找类似bash $@的命令行参数展开实现方法

解决方案

AutoHotkey没有内置类似bash$@的直接展开语法,需要先在脚本启动时把命令行参数预处理成符合规则的拼接字符串,再传给Run命令即可实现需求。

AHK v2 实现(你代码中用到的A_Args为v2内置变量)

先在脚本最顶部的自动执行段加入参数预处理逻辑:

; 全局存储预处理后的参数字符串
global runArgs := ""
for _, arg in A_Args {
    ; 每个参数包裹双引号,参数内部的双引号转义为两个双引号,避免解析错误
    runArgs .= '"' StrReplace(arg, '"', '""') '" '
}

热键写法直接调用预处理好的变量即可:

<^#i::Run D:\Scripts\myprog.exe %runArgs%

AHK v1 实现

如果你使用的是AHK v1版本,预处理逻辑写法如下:

global runArgs := ""
Loop %0% {
    arg := %A_Index%
    runArgs .= '"' StrReplace(arg, '"', '""') '" '
}

热键写法和v2一致。


原写法失效原因说明

  • 直接使用%A_Args%:A_Args是数组对象,无法在字符串场景下自动展开为空格分隔的参数字符串,直接调用只会返回无效的对象标识。
  • 尝试%*%语法:AutoHotkey没有兼容批处理的%*语法,该写法不符合AHK语法规则,因此无法编译。

内容的提问来源于stack exchange,提问作者Anna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:27:06