主要内容

系统

执行操作系统命令并返回结果

描述

状态=系统(命令调用操作系统执行指定的命令。控件返回命令的退出状态之前,该操作等待命令执行完成状态变量。

该函数启动一个新的cmd/shell进程,并执行命令,退出该过程,并返回到MATLAB®的过程。对系统环境的更新命令对MATLAB是不可见的。

例子

状态cmdout] =系统(命令也返回命令的输出cmdout.这种语法对于不需要用户输入的命令最有用,例如dir

状态cmdout] =系统(命令,“回声”)也在MATLAB命令窗口中显示(回显)命令输出。这种语法对于需要用户输入并在MATLAB命令窗口中正确运行的命令最有用。

状态cmdout] =系统(___EnvName1,EnvVal1、……EnvNameN,EnvValN)设置操作系统环境变量的值。如果EnvName那么,作为环境变量存在系统将其当前值替换为EnvVal.如果EnvName不存在吗系统创建一个名为EnvName和分配EnvVal到它。

系统通过EnvName而且EnvVal到操作系统不变。特殊字符,例如/,,是未展开的EnvVal

例子

全部折叠

控件显示当前文件夹cd命令。一个状态的值表示命令成功完成。MATLAB返回一个包含当前文件夹的字符向量cmdout

命令=“cd”;(地位、cmdout) =系统(命令)

创建一个名为mynew,叫mkdir命令并将退出状态保存到一个变量。一个状态表示mynew文件夹创建成功。

命令=“mkdir mynew”;状态=系统(命令)

开放微软®记事本并立即将退出状态返回到MATLAB,通过附加一个&号()记事本命令。一个状态为0表示记事本成功启动。

状态=系统(‘记事本&’

执行dir命令,查看退出状态和回显信息。cmdout包含命令回显信息。

[~, cmdout] =系统(“dir”);

尝试执行一个名为badcmd.然后,查看状态而且结果输出参数。当调用无效命令时,状态显示失败,结果包含DOS错误消息。

[状态,结果]=系统(“badcmd”

列出当前登录的所有用户,并保存命令退出状态和输出。然后查看状态。一个状态的值表示命令成功完成。中返回一个用户列表cmdout

命令=“谁”;(地位、cmdout) =系统(命令);状态
状态= 0

输入参数

全部折叠

操作系统命令,指定为字符串或字符向量。的命令在一个系统shell中执行,这个shell可能不是您开始使用MATLAB的shell。

例子:“dir”

例子:“ls”

环境变量名,指定为字符串标量或字符向量。

中的最大字符数的名字是215- 2个,即32,766个。如果的名字包含了字符,然后系统抛出一个错误。环境变量的行为名字没有很好地定义。

例子:“路径”

环境变量值,指定为字符串标量或字符向量。

例子:“C: \ TEMP”

输出参数

全部折叠

命令退出状态,返回任意一个0或者一个非零整数。当命令成功时,状态0.否则,状态是非零整数。

  • 如果命令包含&字符(),然后状态退出状态是什么时候命令开始

  • 如果命令不包括&字符(),然后状态退出状态是开启的吗命令完成。

操作系统命令的输出,作为字符向量返回。系统外壳可能不能正确表示非unicode®字符。

限制

  • MATLAB将字符转换为操作系统shell接受的编码。的输出命令转换为MATLAB编码,在命令窗口中显示。如果从该命令得到意外的结果,请输入命令参数,以查看操作系统如何处理您的输入。

  • 方法时不会调用回调函数系统命令执行。

更多关于

全部折叠

窗户提示和限制

  • ms - dos®不支持UNC路径名。因此,如果当前文件夹使用UNC路径名,则运行系统用一个DOS命令依赖于当前文件夹的操作失败。要解决此限制,请在调用之前将文件夹更改为映射驱动器系统

  • 方法中重写环境变量系统命令。例如,下面的代码设置路径变量来myPath,然后调用系统命令dosCommand与价值。

    系统([' = '设置路径myPath“& &”dosCommand])
  • 要在后台执行操作系统命令,请包含尾随字符,,在命令论点。例如,类型‘记事本&’.退出状态立即返回到状态变量。这种语法对于在运行时需要交互式用户命令输入的控制台程序非常有用,并且不能在MATLAB命令窗口中正确运行。

    如果命令包括落后字符,然后cmdout是空的。

  • 系统命令使用与启动MATLAB使用的凭据相同的凭据。为程序设置凭据myprogram.exe要获得管理权限,输入:

    系统(“cmd / C myprogram.exe”);

UNIX提示和限制

  • MATLAB使用shell程序来执行给定的命令。它通过检查系统上的环境变量来确定要使用哪个shell程序。MATLAB首先检查MATLAB_SHELL变量,如果为空或未定义,则选中壳牌.如果壳牌也为空或未定义,MATLAB使用/bin/sh

  • 系统重定向功能stdin命令默认情况下。该重定向还将MATLAB脚本命令和键盘提前输入缓冲区传递给被调用的命令系统函数执行。这种行为可能导致损坏的输出系统不会立即完成执行。禁用stdin和输入前重定向,包括格式化的文本< / dev / null在对被调用命令的调用中。

  • 方法中重写环境变量系统命令。语法取决于UNIX®壳。例如,使用BASH shell,下面的代码设置路径变量来myPath,然后调用系统命令命令与价值。

    系统([' = '出口路径myPath“;”命令])
  • 要在后台执行操作系统命令,请包含尾随字符,,在命令论点。例如,类型“emacs &”.退出状态立即返回到状态变量。这种语法对于在运行时需要交互式用户命令输入的控制台程序非常有用,并且不能在MATLAB命令窗口中正确运行。

    如果命令包括落后字符,然后cmdout是空的。

版本历史

之前介绍过的R2006a

Baidu
map