sysExecute

Version 23.4.8843


sysExecute


执行程序或命令。

必需的参数

  • name: 执行的命令或程序的名称。

可选的参数

  • arguments: 命令或程序的以空格分隔的命令行参数集(例如,<arc:set attr="executable.arguments" value="arg1 arg2 arg3"/>)。
  • argarray#: 提供给命令或程序的参数数组。 该数组是通过为想要的每个索引(参数)创建一个“argarray#”条目来构建的(请参见下面的示例)。
  • directory: 启动命令或程序的目录。默认值为 “.”。
  • timeout: 等待命令或程序的最长时间(以秒为单位)。使用 -1 表示没有超时。默认值为 “60”。
  • waitforoutput: 是否等待命令或程序的输出。默认值是 “true”。

输出属性

  • sys:output: 命令或程序的输出。
  • sys:error: 命令或程序的错误输出(如果有)。

示例

.NET

<!-- 创建一个 out 项来保存输出数据 -->
<arc:set attr="out.data" value=""/>
<!-- 创建一个输入项,“可执行”并分配输入参数 -->
<arc:set attr="executable.name" value="C:\\temp\\foo.bat" />
<!-- 创建将传递到命令或程序中的参数数组 -->
<arc:set attr="executable.argarray#1" value="arg1"/>
<arc:set attr="executable.argarray#2" value="arg2"/>
<arc:set attr="executable.argarray#3" value="arg3"/>
<!-- 调用运算器,传入输入项并设置输出项 -->
<arc:call op="sysExecute" in="executable" out="results">
  <!-- 填充out item的data属性-->
  <arc:set attr="out.data" value="[results.sys:output]" />
</arc:call>
<!-- 设置输出项的文件名并将其作为输出文件推送 -->
<arc:set attr="out.filename" value="echo.txt"/>
<arc:push item="out"/>

此处调用的批处理文件被编程为输出 Hello world 以及传入的参数列表。该脚本的输出(echo.txt)如下所示:

Hello world.
The first argument is arg1
The second argument is arg2
The third argument is arg3

Linux

<!-- 创建一个 out 项来保存输出数据 -->
<arc:set attr="out.data" value=""/>
<!-- 创建一个输入项,“可执行”并分配输入参数 -->
<arc:set attr="executable.name" value="bash" />
<arc:set attr="executable.arguments" value="/mnt/c/scripts/helloworld.sh lion tiger bear" />
<!-- 调用运算器,传入输入项并设置输出项 -->
<arc:call op="sysExecute" in="executable" out="results">
  <!-- 填充out item的data属性-->
  <arc:set attr="out.data" value="[results.sys:output]" />
</arc:call>
<!-- 设置输出项的文件名并将其作为输出文件推送 -->
<arc:set attr="out.filename" value="echo.txt"/>
<arc:push item="out"/>

此处调用的批处理文件被编程为输出 hello linux world 以及传入的参数列表。该脚本的输出(echo.txt)如下所示:

hello linux world
The first argument is lion
The second argument is tiger
The third argument is bear