以斜杠或短横线开始的前导参数作为键。
自动移除一个或多个相同的前导字符作为键名。 如果前导参数包含等号,则以等号拆分为键值对,等号前后不应有空格,
否则检查下一参数如果没有相同的首字符则设为此键对应的值。
如果一个前导参数没有指定值,则默认值为空字符串(逻辑值为true)。 1、参数名区分大小写
2、以斜杠或短横线开始的前导参数作为键名(键名移除一个或多个相同的前导字符,区分大小写),
如果前导参数包含等号,则以等号拆分为键值对,等号前后不应有空格,
否则检查下一参数如果没有相同的首字符则设为此键名对应的值,
如果一个前导参数没有指定值,则默认值为空字符串(逻辑值为 true)。 也就是说以下写法对于 string.cmdline.argv 或 _ARGV 是等价的 --name=value
--name value
-name value
/name value 注意多次指定同名参数,则仅保存最后一次设定的值。
所有命名参数、非命名参数都会添加到解析返回参数表的数组成员中。 除支持 string.cmdline.argv(str) 相同的功能与解析规则以外,
string.cmdline.argv2(str,option) 增加以下规则: 单个 - 开头的命名参数解析为短参数。
短参数可以用空格分隔参数值,也可以省略分隔符(等号不作为分隔符)。 可在第 2 个调用参数中指定一个 @option 选项表。
@option 的所有键名用于指定待解析的命令行参数名字。
@option 预定义的单字符或多字符名字可作为短参数名、长参数名使用。
@option 预定义的单字母参数名允许作为短参数名合并到一个参数段。 @option 中参数名对应的值可以为任何非 false 值。
如果 @option 表中定义的值是函数,则每次解析对应名称参数时都会回调该函数。
回调参数 @1 为解析得到的参数值,而回调参数 @2 为将要返回的解析结果(参数表) 命令行程序通常会用 / - 或 -- 作为参数名前导字符。
参数的名字与值以用空格分开。 很多程序同一个参数会提供长参数、短参数两个版本。
长参数名以 -- 开始,短参数名以 - 开始。 长参数或短参数一般都支持以空格分隔名字与值。
但长参数还可以用等号分隔其值,短参数还可以省略分隔符 例如 以 aria2 为例,以下几种写法是等价的: aria2 -j12 其他参数
aria2 -j 12 其他参数
aria2 --max-concurrent-downloads=12 其他参数
aria2 --max-concurrent-downloads 12 其他参数
有些时候可能不支持等号分隔值,空格分隔的兼容性可能更好一些 多个短参数可以合并。
例如"-v -i" 可以写为 "-vi" 。 有时候短参数后面可以跟另外一个键值对,例如 7zip 的参数:
-mmt=on
命令行参数语法
一、_ARGV 或 string.cmdline.argv 解析命名参数的语法规则
二、string.cmdline.argv2 解析命名参数的语法规则
二、调用外部程序传命名参数的语法规则
所有【参数段】以空格或制表等分开
在一对双引号中表示的【引用段】则可以包含空格
两个连续的引号表示一个引号字符并且关闭【引用段】
关闭【引用段】后的非空格字符或引用段仍然追加其后
一个或多个连续的反斜杠如果最后有一个引号则启用转义
单个反斜杠转义其后的引号或反斜杠表示字面值
首个索引为0的参数段要么是引号包含的引用段,或是任意非空白字符组成
解析命令行参数
生成命令行参数请使用 string.argv 。
解析命令行,返回数组
该数组可修改后调用 tostring 函数反解析为字符串文本
参数不是字符串、或为空串返回 null
解析并转换创建进程的命令行参数
解析并转换创建进程的命令行参数,
将一个或多个命令行参数转换为数组,
如果参数@1是一个表,则直接返回所有参数,
如只有一个文本参数且含空格、首尾无双引号则解析并返回数组,
否则直接将所有参数置入数组返回,
返回数组不包含索引为0的启动程序路径,
返回数组可传入 process.joinArguments 函数 或 process 构造函数作为参数
调用 string.cmdline 解析命令行参数并返回数组,
该数组也包含按下列规则解析的名值对:
以斜杠或短横线开始的前导参数作为键(键名移除一个或多个相同的前导字符,区分大小写),
如果前导参数包含等号,则以等号拆分为键值对,等号前后不应有空格,
否则检查下一参数如果没有相同的首字符则设为此键对应的值,
如果一个前导参数没有指定值,则默认值为空字符串(逻辑值为true)。
注意参数名区分大小写
调用 string.cmdline 解析命令行参数并返回数组,
该数组也包含解析后的名值对。
解析名值对时忽略索引为0的参数,
首个索引为0的参数段要么是引号包含的引用段,或是任意非空白字符组成,
命令行以空白字符开始表示索引为 0 的参数为空
请输入命令行参数中以斜杠或短横线开始的前导参数名