система

Выполните команду операционной системы и возвратите выходной параметр

Синтаксис

status = system(command)
[status,cmdout] = system(command)
[status,cmdout] = system(command,'-echo')

Описание

status = system(command) вызывает операционную систему, чтобы выполнить заданную команду. Операция ожидает команды, чтобы закончить выполнение прежде, чем возвратить статус выхода команды к переменной status.

Функция запускает новый cmd/shell процесс, выполняет command, выходит из процесса и возвращается к процессу MATLAB®. Обновления системной среды, сделанной command, не видимы к MATLAB.

пример

[status,cmdout] = system(command) также возвращает выходной параметр команды к cmdout. Этот синтаксис является самым полезным для команд, которые не требуют ввода данных пользователем, такого как dir.

[status,cmdout] = system(command,'-echo') также отображения (эхо) команда выводятся в Окне Команды MATLAB. Этот синтаксис является самым полезным для команд, которые требуют ввода данных пользователем и того выполнения правильно в Окне Команды MATLAB.

Примеры

свернуть все

Отобразите текущую папку с помощью команды cd. status нуля указывает что команда, завершенная успешно. MATLAB возвращает вектор символов, содержащий текущую папку в cmdout.

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

Чтобы создать папку под названием mynew, вызовите команду mkdir и сохраните статус выхода в переменную. status нуля указывает, что папка mynew была создана успешно.

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

Откройте Блокнот Microsoft® и сразу возвратите статус выхода в MATLAB путем добавления амперсанда (&) к команде notepad. status нуля указывает что Блокнот, успешно запущенный.

status = system('notepad &')

Выполните команду dir и просмотрите статус выхода и команду вывод. cmdout содержит команду вывод.

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

Попытайтесь выполнить команду под названием badcmd. Затем просмотрите выходные аргументы results и status. Когда вы вызываете недопустимую команду, status указывает на отказ, и results содержит сообщение об ошибке DOS.

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

Перечислите всех пользователей, которые в настоящее время зарегистрированы, и сохраняют статус выхода команды и выводят. Затем просмотрите состояние. status нуля указывает что команда, завершенная успешно. MATLAB® возвращает список пользователей в cmdout.

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

Входные параметры

свернуть все

Команда операционной системы, заданная как строка или вектор символов. command выполняется в системном интерпретаторе, который не может быть интерпретатором, с которого вы запустили MATLAB.

Пример: 'dir'

Пример: 'ls'

Выходные аргументы

свернуть все

Статус выхода команды, возвращенный или как 0 или как ненулевое целое число. Когда команда успешна, status является 0. В противном случае status является ненулевым целым числом.

  • Если command включает символ амперсанда (&), то status является статусом выхода, когда command запускается

  • Если command не включает символ амперсанда (&), то status является статусом выхода после завершения command.

Вывод команды операционной системы, возвращенной как вектор символов. Системный интерпретатор не может правильно представлять non-Unicode® символы.

Ограничения

  • MATLAB преобразовывает символы в кодирование, которое принимает ваш интерпретатор операционной системы. Вывод от command преобразован в кодирование MATLAB, которое будет отображено в командном окне. Если вы получаете неожиданные результаты команды, введите аргумент command непосредственно в подсказке операционной системы, чтобы видеть, как операционная система обрабатывает ваш вход.

  • Функции обратного вызова не называются, в то время как команда system выполняется.

Больше о

свернуть все

Windows Tips и ограничения

  • MS-DOS® не поддерживает имена пути UNC. Поэтому, если текущая папка использует имя пути UNC, то, запуская system с DOS command, который полагается на сбои текущей папки. Чтобы работать вокруг этого ограничения, измените папку на сетевой диск прежде, чем вызвать system.

  • Можно заменить переменную окружения в команде system. Например, следующие кодовые наборы переменная PATH к myPath, затем вызывает системную команду dosCommand с тем значением.

    system(['set PATH=' myPath ' && ' dosCommand])
  • Чтобы выполнить команду операционной системы в фоновом режиме, включайте конечный символ, &, в аргументе command. Например, введите 'notepad &'. Статус выхода сразу возвращен в переменную status. Этот синтаксис полезен для консольных программ, которые требуют интерактивного пользовательского ввода команд, в то время как они запускаются, и которые не запускаются правильно в Окне Команды MATLAB.

    Если command включает запаздывающий символ &, то cmdout пуст.

  • Команда system использует те же учетные данные, как учетные данные раньше запускали MATLAB. Чтобы установить учетные данные для программы myprogram.exe требовать административных привилегий, введите:

    system('cmd /C myprogram.exe');

Советы UNIX и ограничения

  • MATLAB использует программную оболочку, чтобы выполнить данную команду. Это определяет который программная оболочка использовать путем проверки переменных окружения в системе. MATLAB сначала проверяет переменную MATLAB_SHELL, и если или пустой или не заданный, то проверки SHELL. Если SHELL также пуст или не заданный, MATLAB использует /bin/sh.

  • Функция system перенаправляет stdin к command по умолчанию. Это перенаправление также передает команды скрипта MATLAB и буфер клавиатуры клавиатуры к вызванной команде, в то время как функция system выполняется. Это поведение может привести к поврежденному выводу, когда system сразу не завершает выполнение. Чтобы отключить stdin и перенаправление ввода с опережением, включайте форматированный текст < /dev/null в вызов вызванной команды.

  • Можно заменить переменную окружения в команде system. Синтаксис зависит от интерпретатора UNIX®. Например, использование интерпретатора Bash, следующие кодовые наборы переменная PATH к myPath, затем вызывает системную команду command с тем значением.

    system(['export PATH=' myPath ' ; ' command])
  • Чтобы выполнить команду операционной системы в фоновом режиме, включайте конечный символ, &, в аргументе command. Например, введите 'emacs &'. Статус выхода сразу возвращен в переменную status. Этот синтаксис полезен для консольных программ, которые требуют интерактивного пользовательского ввода команд, в то время как они запускаются, и которые не запускаются правильно в Окне Команды MATLAB.

    Если command включает запаздывающий символ &, то cmdout пуст.

Представлено до R2006a