Command
Command 对象用于脚本运行 Opus 命令。任何您可以从按钮或热键运行的命令都可以从脚本运行 - 脚本甚至可以运行 其它脚本添加的命令。从根本上说,使用 Command 对象类似于配置 Opus 按钮。您向对象添加一个或多个命令行,就像您向按钮的功能添加一个或多个命令行一样。您可以告诉它对哪些文件和文件夹进行操作,并且可以使用对象的各种方法和属性来修改命令的行为。初始化对象后,您可以使用 Run 或 RunCommand 方法来调用命令。
Command 对象可以通过 DOpusFactory.Command 方法创建。默认情况下,此对象没有源、目标、要操作的文件等 - 您必须使用适当的方法来配置命令才能运行它。您还可以从 Func.command 属性检索 Command 对象,在这种情况下,源、目标、要操作的文件以及其它几个属性会为您预先初始化。
deselect
bool
将此属性设置为 False 以防止此命令使用的文件被取消选择,并将此属性设置为 True 以在函数完成后取消选择它们。请注意,文件只有在来自 Tab 对象时才会被取消选择,并且只有在命令成功时才会被取消选择。
dest
object:Path
返回一个 Path 对象,表示此命令的目标文件夹。如果设置了目标标签页,则它将是标签页中的路径。您不能直接设置此属性 - 相反,请使用 SetDest 或 SetDestTab 方法来更改目标文件夹。
desttab
object:Tab
返回一个 Tab 对象,表示此命令的目标标签页(如果它存在 - 并非所有命令都需要目标)。您不能直接设置此属性 - 相反,请使用 SetDestTab 方法来更改目标标签页。
filecount
int
返回 files 对象中的项目数。
files
object:Items
返回一个 Items 对象,表示此命令要对其进行操作的文件和文件夹。您不能直接修改此对象 - 相反,您可以使用各种方法(ClearFiles、SetFiles、AddFile、RemoveFile 等)来修改要操作的项目列表。
linecount
int
返回添加到命令的指令行数。
方法名称
参数
返回类型
描述
AddFile
int
AddFiles
int
将指定集合中的项目添加到此命令要对其进行操作的项目列表中。返回值是集合中新的项目数。
您还可以传递 Vector 的 Item 或 Path 对象,或完整路径字符串,而不是集合。或者,您可以传递 StringSet 或 UnorderedSet 的完整路径字符串。
AddFilesFromClipboard
none
int
将剪贴板的内容添加到此命令要对其进行操作的项目集合中。此方法支持将文件和作为文本复制到剪贴板的文件路径。返回值是集合中新的项目数。
AddFilesFromFile
<string:path> <string:encoding>
int
从指定文件的内容中读取文件路径并将其添加到项目集合中。您可以将文件的路径作为 string 或 Path 对象传递。文件必须包含每行一个绝对路径。 文件的编码假定为 ANSI,除非它在开头有 BOM(字节序标记),或者您指定了 encoding 参数。如果指定了编码,则它必须是一个 string,等于以下之一:utf16be、utf16le、utf8、ansi 或 cp:XXXX,其中 XXXX 指定代码页号)。
返回值是集合中新的项目数。
AddFilesFromFolder
<string:path>
int
AddLine
<string:instruction>
none
将指定的指令行添加到此对象将运行的命令中。AddLine 方法允许您构建复杂的多个命令行 - 依次添加每一行,然后使用 Run 方法运行命令。对于单行命令,使用 RunCommand 方法更简单。
Clear
none
none
清除命令中的所有指令行。
ClearFailed
none
none
从 Items 集合中清除失败标志。当运行命令时,任何失败的项目都会将其 failed 属性设置为 True,并且一旦发生这种情况,任何后续命令都会跳过该文件。您可以调用此方法来重置所有失败标志。
ClearFiles
none
none
清除此命令要对其进行操作的项目集合。
ClearModifier
<string:modifier>
none
清除为此命令设置的任何修饰符。支持的修饰符是完整 命令修饰符 列表的子集 - 请参阅 SetModifier 方法以获取这些修饰符的列表。您还可以传递 * 来清除已设置的所有修饰符。
CommandList
none 或 <string:types>
object:StringSet
返回一个 StringSet,其中包含所有 Opus 命令的名称。您还可以选择通过向 CommandList 方法提供一个或多个以下标志作为参数来过滤此集合:
i
内部(内置)命令
s
脚本命令
u
用户命令
Dlg
none
object:Dialog
创建一个新的 Dialog 对象,允许您显示对话框和弹出菜单。对话框的 window 属性将自动分配给源标签页。
i
内部(内置)命令
s
脚本命令
u
用户命令
Dlg
IsSet
<string:condition> [<string:command>]
bool
RemoveFile
int
Run
none
int
运行使用此对象构建的命令。返回的值指示命令是否成功运行。零表示无法运行命令或命令已中止;任何其它数字表示命令至少已针对某些文件运行。(请注意,这不是外部命令的“退出代码”。对于外部命令,它仅指示 Opus 是否已启动该命令。如果您需要外部命令的退出代码,请使用 WScript.Shell Run 或 Exec 方法来运行该命令。)您可以使用 Results 属性来查找有关命令结果的更多信息,并发现使用 files 集合中每个 Item 的 failed 属性失败的文件(如果有)。
RunAsync
none
int
异步运行使用此对象构建的命令,而不等待它返回。返回的值指示命令是否已成功启动,但无法获得有关命令结果的更多信息。
RunCommand
<string:instruction>
int
运行 instruction 参数给出的单行命令。调用此方法等效于使用 AddLine 方法添加单行,然后调用 Run 方法。
RunCommandAsync
<string:instruction>
int
异步运行 instruction 参数给出的单行命令,而不等待它返回。调用此方法等效于使用 AddLine 方法添加单行,然后调用 RunAsync 方法。
SetModifier
<string:modifier> <string:value>
none
打开此命令的修饰符。支持的修饰符是完整 命令修饰符 列表的子集: admin、async、codepage、externalonly、leavedoswindowopen、nodeselect、noexpandenv、nofilenamequoting、nolocalizefiles、noprogress、norunbatch、resolvelinks、runmode。
使用此方法等效于使用 AddLine 方法将修饰符作为指令添加到命令中;例如,Command.SetModifier("admin") 与 Command.AddLine("@admin") 相同。如果修饰符需要值,则将其作为第二个参数传递,例如 Command.SetModifier("runmode", "hide")。
SetQualifiers
<string:qualifiers>
none
此方法允许您控制由此对象运行的命令在被调用时将考虑哪些限定符键已按下。例如,一些内部命令在按住某些限定符键时会改变其行为 - 调用此方法允许您设置它们将看到的键。
qualifiers 参数必须包含以下一个或多个字符串(以逗号分隔):none、shift、ctrl、alt、lwin、rwin、win。
SetType
<string:type>
none
设置此命令将运行的函数类型。这相当于 高级命令编辑器 中的下拉控件。type 参数必须是以下字符串之一:std、msdos、script、wsl。如果类型未明确设置,则默认值为标准(std)。
UpdateToggle
none
none
此方法可用于更新使用变量来确定其标签或状态的工具栏按钮的外观。例如,按钮可能会使用 @toggle:if 来设置其选择状态,具体取决于 全局、标签页 或 文件窗口范围 变量的存在。如果您从脚本中更改了 such a variable,则需要调用此方法以强制使用它的按钮更新。
最后更新于