windows-10 - 展开命令行参数自动热键
问题描述
TLDR;我正在尝试$@
在 autohotkey中找到与 bash 等效的
我正在开发一个自动热键脚本,它会在触发时运行特定的程序。
<^#i::Run D:\Scripts\myprog.exe "arg_1" "arg_2"
; Runs with whatever arguments I provide on pressing Ctrl + Win + I
我希望程序以特定的命令行参数启动;我在启动脚本时提供的。
> ahk_prog.exe arg_1 arg_2
我基本上希望能够将启动程序期间提供的命令行参数转换为能够在每次触发时运行运行命令。
我试过这个:
<^#i::Run D:\Scripts\myprog.exe %A_Args% ; A_Args is the array of CLI arguments
; Runs with whatever arguments I provide on pressing Ctrl + Win + I
我也试过这个(这个根本不编译)
<^#i::Run D:\Scripts\myprog.exe "%*%" ; Trying Batch Like syntax since %1% and %2% are valid
; Runs with whatever arguments I provide on pressing Ctrl + Win + I
它们都不起作用。有没有办法做到这一点?
解决方案
A_Args
(docs)是一个数组,因此您可以将它加入一个字符串中。
例如:
for each, arg in A_Args
arg_list .= """" arg """ "
arg_list := RTrim(arg_list) ;trim trailing space (might be unnecessary)
MsgBox, % arg_list
在参数周围添加引号,因为如果您的参数中有空格,它们当然是需要的。
然后你可以像这样将它添加到你的Run
命令中:
for each, arg in A_Args
arg_list .= """" arg """ "
arg_list := RTrim(arg_list) ;trim trailing space (might be unnecesary)
<^#i::Run, % "D:\Scripts\myprog.exe " arg_list
也可以像这样作为单线来完成:
<^#i::Run, % "D:\Scripts\myprog.exe " RTrim(Format(StrReplace(Format("{:0" A_Args.length() "}", ""), 0, """{}"" "), A_Args*))
推荐阅读
- node.js - 处理 .gzip 中的 API 响应,其中包含 XML 文件
- javascript - 如何在具有多级下拉子菜单的 Bootstrap v4 中实现导航栏下拉悬停?
- amazon-qldb - QLDB 的一个事务中可以更新多少项?
- python-3.x - 调用装饰函数两次只返回装饰器而不返回函数
- mysql - 如何在没有日历表的情况下向 mysql 查询添加天间隔
- php - $result 总是返回 1 ,而不是数据库中想要的 ID
- testing - 在 Azure DevOps 中使用 Pipelines 以更好的方式显示测试结果
- angular - 如何删除空格 - Angular 8 数据绑定
- c# - 在 C# 上的 documentNode 中获取特定节点
- r - 如何根据 R 中重复标称值的总和计算新值