主要内容

system

执行操作系统命令并返回输出

说明

status = system(command) 调用操作系统执行指定的命令。操作会等待命令执行完毕,然后再将命令的退出状态返回到 status 变量。

该函数将启动新的 cmd/shell 进程、执行 command、退出进程,然后返回到 MATLAB® 进程。command 对系统环境所做的更新对 MATLAB 不可见。

[status,cmdout] = system(command) 还会将命令的输出返回到 cmdout。该语法对不需要用户输入的命令最有用,例如 dir

示例

[status,cmdout] = system(command,'-echo') 还在 MATLAB 命令行窗口中显示(回显)命令输出。该语法对需要用户输入并在 MATLAB 命令行窗口中正确运行的命令最有用。

[status,cmdout] = system(___,EnvName1,EnvVal1,...,EnvNameN,EnvValN) 设置操作系统环境变量的值。如果 EnvName 已作为环境变量存在,则 system 会将其当前值替换为 EnvVal。如果 EnvName 不存在,则 system 会创建一个名为 EnvName 的环境变量,并将 EnvVal 赋给该变量。

systemEnvNameEnvVal 原样传递给操作系统。特殊字符(如 ;/:$%)在 EnvVal 中未展开。

示例

全部折叠

使用 cd 命令显示当前文件夹。status 为零表示命令已成功完成。MATLAB 将在 cmdout 中返回一个包含当前文件夹的字符向量。

command = 'cd';
[status,cmdout] = system(command)

要创建一个名为 mynew 的文件夹,请调用 mkdir 命令并将退出状态保存到一个变量。status 为零表示 mynew 文件夹已成功创建。

command = 'mkdir mynew';
status = system(command)

通过将符号 & 附加到 notepad 命令,打开 Microsoft® 记事本并立即将退出状态返回至 MATLAB。status 为零表示记事本已成功启动。

status = system('notepad &')

执行 dir 命令并查看退出状态和命令输出。cmdout 包含命令输出。

[~,cmdout] = system('dir');

尝试执行名为 badcmd 的命令。然后,查看 statusresults 输出参量。调用无效的命令时,status 表示失败并且 results 包含 DOS 错误消息。

[status,results] = system('badcmd')

列出当前已登录的所有用户,然后保存命令退出状态和输出。然后,查看该状态。status 为零表示命令已成功完成。MATLAB® 将在 cmdout 中返回用户列表。

command = 'who';
[status,cmdout] = system(command);
status
status = 
0

输入参数

全部折叠

操作系统命令,指定为字符串或字符向量。command 在系统 shell 中执行,它可能不是您用于启动 MATLAB 的 shell。要指定多项操作系统命令,请使用 cmdsep 来提供特定于平台的命令分隔符。

示例: "dir"

示例: "ls"

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

name 中的最大字符数为 215 - 2,即 32,766。如果 name 包含 = 字符,则 system 会抛出错误。名称中包含 = 的环境变量的行为未明确定义。

示例: "PATH"

环境变量值,指定为字符串标量、字符向量或 missing。通过将环境变量的值设置为 missing 来删除该环境变量。

示例: "C:\TEMP"

输出参量

全部折叠

命令退出状态,以 0 或非零整数的形式返回。当命令成功执行时,status0。否则,status 为非零整数。

  • 如果 command 包含字符 &,则 statuscommand 启动时的退出状态。

  • 如果 command 不包含字符 &,则 statuscommand 命令完成时的退出状态。

操作系统命令的输出,以字符向量形式返回。系统 shell 可能无法正确表示非 Unicode® 字符。

限制

  • MATLAB 会将字符转换为您的操作系统 shell 接受的编码。command 输出会转换为 MATLAB 编码以显示在命令行窗口中。如果您执行命令得到意外结果,则可在操作系统提示符下直接输入 command 参量,查看操作系统对您输入的处理方式。

  • system 命令执行期间,不会调用回调函数。

详细信息

全部折叠

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部展开