🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 高级命令编辑器 请参阅[命令编辑器]()页面来了解高级和简单模式共有的元素说明。此页面仅介绍高级模式独有的内容。 [简单模式](simple_command_editor.zh.md)只允许定义单行函数,而高级模式让你能够创建更复杂的函数。在高级模式下,由多行文本框取代单行的**函数**字段,让你能够创建更复杂的多行函数。 ![](/Manual/images/media/command_editor_advanced.png) 此截图演示了命令编辑器位于高级模式时的样子(所示函数来自默认工具栏上的**复制文件**按钮)。你可以看到单行的**函数**字段已被多行字段取代。有一个新的下拉框,让你可以选择函数类型(*标准*或*MS-DOS 批处理*)。此外,**开始于**和**运行**字段已消失——如果简单模式中已指定这些字段,它们将被多行函数定义中的等效命令取代。(不要与**运行**按钮混淆,下方将对其进行讨论。) ![](/Manual/images/media/start_in_x_run_0.png)  在这些截图中你可以看到**开始于**字段已转换为**cd**命令(用来设置**c**urrent **d**irectory),而**运行**设置已转换为**@runmode**限定符。有很多的命令限定符可用于高级模式中的命令。上面显示了另一个限定符:在**复制文件**函数中,**@keydown**限定符用于根据是否按住**Shift**键来改变按钮的函数。请参阅[命令限定符](../command_modifiers.zh.md)页面了解更多关于限定符的信息。 ### 函数类型 高级模式中的**函数**下拉框让你可以选择三种函数类型: - **标准函数:**此类型用于大部分命令,是用户最常选择的选项。此模式中同时包含内部 Opus 函数和启动常规外部 Windows 程序。 - **[MS-DOS 批处理函数](../ms-dos_batch_commands.zh.md)**:此类型用于运行 MS-DOS 类型程序(包括**bat**脚本)。它适用于不打开自身窗口,而是设计为向 DOS 提示符输出文本的程序。 - **[脚本函数](/Manual/scripting/script_functions.zh.md)**:此类型用于使用 ActiveX 脚本语言(例如 VBScript 或 JScript)来定义一个按钮。选择此类型后,将显示其它控件,让你选择脚本语言。请参阅[脚本](/Manual/scripting/README.zh.md)页面了解更多关于脚本的详细信息。 - **WSL 脚本函数:**如果您在 Windows 10 中从 Windows 商店安装了 WSL(适用于 Linux 的 Windows 子系统),则此选项可用。它让你能够在 Opus 中运行 WSL(Bash)脚本。 ### 函数编辑 多行文本字段用于输入构成命令的指令。该字段上方的工具栏包含一些下拉框,可以帮助你构建命令: - **编辑:**此下拉框包含许多类似于文本编辑器的编辑字段功能;剪贴板操作、搜索和替换等。 - **命令:**显示[内部命令](/Manual/reference/command_reference/internal_commands/README.zh.md)的列表(包括任何[用户自定义命令](/Manual/customize/creating_your_own_buttons/user-defined_commands.zh.md))。选择一项会将命令插入函数中。 - **参数:**这是一项根据上下文敏感的下拉框,用于显示光标所在行开始的命令的参数(如果存在)。因此,例如,如果你从**命令**下拉框中选择了**复制**,那么**参数**下拉框就会显示**复制**命令的参数。同样,从下拉菜单中选择参数会将其插入函数正文中。**参数**下拉框还会显示[外部控制代码](/Manual/reference/command_reference/external_control_codes/README.zh.md)的列表(可与内部命令和外部程序一起使用,以便将诸如所选文件名称之类的内容传递给命令)。 - **浏览:**此按钮显示标准文件浏览器对话框,让你找到要运行的外部程序。程序的完整路径将插入函数中。 - **限定符:**显示各种[命令限定符](../command_modifiers.zh.md)的下拉列表(附带说明),你可以使用这些限定符来更改命令的行为。 以`//`开始的行将被忽略,使你可以在命令中添加注释。`//`必须位于行的最开始,之前不能有任何空格或其它内容,否则该行将成为注释。 复杂命令可以分布在多行。如果`[[`出现在一行开头,则表示后面内容是前一个命令的一部分。例如,以下几行被解释为一个命令: 查找 IN C:\ [[QUERY *.jpg]] [[ FILTERDEF 大小匹配 > 100 kb 与大小匹配 < 200 kb ]] 对话框底部的**运行**按钮允许你立即运行命令或脚本来对其进行测试,而无需关闭按钮编辑器。你可以使用 <kbd>F5</kbd> 热键执行相同的操作。(在处理复杂内容时,最好偶尔保存你的工作,以防万一!只当你单击按钮编辑器中的确定,然后在自定义对话框中再次单击确定退出自定义模式时才会进行保存。) 从编辑器运行的按钮将在启动编辑器的文件窗口中的源文件夹标签页上运行。如果按钮需要选定的文件,你可能会觉得很有用,即在命令顶部附近的一行上添加**[@nodeselect](/Manual/reference/command_reference/command_modifier_reference.zh.md)**限定符,以防止每次测试按钮时清除所选内容。根据按钮的类型,你可能想要留存此限定符,也可能不想要。编写脚本时,你可以使用**[命令](/Manual/reference/scripting_reference/scripting_objects/command.zh.md)**对象的**取消选择**属性执行类似操作,在输入脚本模式时得到的默认脚本会显示如何使用它的示例。 测试运行脚本还会导致在编辑器底部打开一个输出面板,其中将显示通过**[DOpus](/Manual/reference/scripting_reference/scripting_objects/dopus.zh.md).Output**方法传递的任何错误消息或字符串。如果你在文件窗口中启用了它,这些还会出现在脚本日志中。