system

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

Описание

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

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

пример

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

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

Примеры

свернуть все

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

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

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

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

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

status = system('notepad &')

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

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

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

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

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

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

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

свернуть все

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

Пример: 'dir'

Пример: 'ls'

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

свернуть все

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

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

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

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

Ограничения

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

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

Подробнее о

свернуть все

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

  • 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.

  • The 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
Для просмотра документации необходимо авторизоваться на сайте