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 команда. 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. Затем просмотрите status и results выходные аргументы. Когда вы вызываете недопустимую команду, 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 isempty.

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

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