执行 CMD
执行 CMD(CMDExecuteTask) 用于在 Windows 上执行一段 CMD 命令脚本,并把标准输出和退出码返回给工作流。适合调用本机命令行工具、批处理脚本或系统命令。该指令仅在 Windows 环境运行。
指令标识:CMDExecuteTask
指令类型:脚本执行指令
指令描述:在 Windows 上执行 CMD 命令脚本
先选使用方式
Section titled “先选使用方式”工作流支持「可视化编排」和「代码编排」两种创建方式。执行 CMD 在两种方式里都能用,核心是把一段 CMD 脚本交给本机执行。
| 方式 | 怎么用 | 适合人群 |
|---|---|---|
| 可视化编排(推荐先学) | 拖入「执行 CMD」节点,填写命令脚本和输出变量 | 大多数用户 |
| 代码编排(Python) | 在脚本中调用 bots.CMDExecuteTask(script="...", outKey="...") | 熟悉代码、需要批量调用命令的用户 |
什么时候用?
Section titled “什么时候用?”- 需要在 Windows 本机调用命令行工具或批处理。
- 需要获取某个系统命令的输出结果,供后续节点使用。
- 自动化中需要执行一次性的本机命令。
如果运行环境是 macOS / Linux,请改用 执行 Shell。
- 当前执行环境为 Windows(非 Windows 会直接报错)。
- 命令脚本中用到的工具已安装并在
PATH中。 - 命令的工作目录、权限满足执行要求。
- 命令执行成功的判定标准是退出码为
0。
可视化编排:从 0 到跑通
Section titled “可视化编排:从 0 到跑通”- 在工作流画布中添加 执行 CMD 节点。
- 在 命令脚本 中填写要执行的命令,例如:
echo Hello & ver- 在 输出 中配置一个变量名(如
cmdResult)保存执行结果。 - 点击运行,查看输出中的
out(标准输出)和exitCode(退出码)。
| 界面名称 | 代码属性名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
| 脚本 | script | String | 是 | - | 要执行的 CMD 命令脚本,支持多行 |
| 入参 | inputList | String | 否 | - | 传入脚本的入参 |
| 脚本语言 | language | String | 否 | - | 脚本语言 |
| 输出参数 | outputList | String | 否 | - | 高级选项,定义要从执行结果中提取的输出参数 |
| 界面名称 | 代码属性名 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| 输出 | outKey | JSON | 否 | 保存执行结果的变量名,结果为 JSON,包含 out(标准输出)和 exitCode(退出码) |
执行结果示例:
{ "out": "Hello \nMicrosoft Windows [版本 ...]", "exitCode": "0" }执行 CMD节点运行结束后状态为成功。- 运行日志中没有参数缺失、超时或执行失败等错误。
- 如果配置了输出变量,后续节点能够读取到符合预期的结果。
- 后续节点能够继续执行,流程没有因为该节点异常中断。
| 现象 / 报错原文 | 可能原因 | 处理建议 |
|---|---|---|
报 CMDExecuteTask requires Windows (cmd.exe) | 在非 Windows 环境运行 | 改用 执行 Shell,或切换到 Windows 环境 |
报 脚本执行失败: exitCode:1 | 命令本身执行出错 | 查看返回信息中的 stderr / stdout,定位命令报错原因 |
| 退出码非 0 但命令看似正常 | 命令返回了非 0 退出码 | 检查命令逻辑,必要时在脚本末尾显式控制退出码 |
| 提示找不到命令 | 工具不在 PATH 中 | 使用工具完整路径,或确认其已加入 PATH |
Python 代码编排
Section titled “Python 代码编排”代码编排以 Python 为主。运行上下文由代码编排模板创建,示例里只需要关注业务指令本身。
# 在 Windows 上执行一段 CMD 命令result = bots.CMDExecuteTask( script="echo Hello & ver", outKey="cmdResult",)可视化表单里的「命令脚本」「输出」分别对应代码里的 script、outKey。返回结果是包含 out 和 exitCode 的 JSON 字符串。
Q1:执行 CMD 支持 macOS / Linux 吗?
Section titled “Q1:执行 CMD 支持 macOS / Linux 吗?”A: 不支持。该指令仅在 Windows 运行,其他平台请使用 执行 Shell。
Q2:怎么判断命令执行成功?
Section titled “Q2:怎么判断命令执行成功?”A: 退出码 exitCode 为 0 视为成功;非 0 会被判为失败并抛出错误。
Q3:命令脚本支持多行吗?
Section titled “Q3:命令脚本支持多行吗?”A: 支持。可以填写多行命令脚本。