주요 콘텐츠

system

운영 체제의 명령 실행 및 출력값 반환

설명

status = system(command)는 운영 체제를 호출하여 지정된 명령을 실행합니다. 이 작업은 명령 실행이 완료되기를 기다린 다음 명령의 종료 상태를 status 변수에 반환합니다.

이 함수는 새 cmd/셸 프로세스를 시작하여 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이 존재하지 않는 경우 systemEnvName이라는 환경 변수를 생성하고 이 변수에 EnvVal을 할당합니다.

systemEnvNameEnvVal을 변경하지 않은 상태로 운영 체제로 전달합니다. ;, /, :, $, %와 같은 특수 문자는 EnvVal에서 확장되지 않습니다.

예제

모두 축소

cd 명령을 사용하여 현재 폴더를 표시합니다. status 0은 명령이 성공적으로 완료되었음을 나타냅니다. MATLAB은 cmdout에 현재 폴더를 포함하는 문자형 벡터를 반환합니다.

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

mynew라는 이름의 폴더를 만들려면 mkdir 명령을 호출하고 종료 상태를 변수에 저장하십시오. status 0은 mynew 폴더가 성공적으로 생성되었음을 나타냅니다.

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

Microsoft® 메모장을 열고 앰퍼샌드(&)를 notepad 명령에 추가(append)하여 종료 상태를 MATLAB으로 즉시 반환합니다. status 0은 메모장이 성공적으로 시작되었음을 나타냅니다.

status = system('notepad &')

dir 명령을 실행하고 종료 상태와 명령 출력값을 확인합니다. cmdout에는 명령 출력값이 들어 있습니다.

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

badcmd 명령 실행을 시도합니다. 그런 다음 출력 인수 statusresults 값을 확인합니다. 유효하지 않은 명령을 호출하는 경우 status는 실패를 표시하고 results는 DOS 오류 메시지를 포함합니다.

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

현재 로그인된 사용자를 모두 나열하고 명령 종료 상태 및 출력값을 저장합니다. 그런 다음 상태를 표시합니다. status 0은 명령이 성공적으로 완료되었음을 나타냅니다. MATLAB®은 cmdout에 사용자 목록을 반환합니다.

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

입력 인수

모두 축소

운영 체제 명령으로, string형이나 문자형 벡터로 지정됩니다. 이 command는 시스템 셸을 실행합니다. 이 셸은 MATLAB을 시작한 셸이 아닐 수 있습니다. 여러 개의 운영 체제 명령을 지정하려면 cmdsep를 사용하여 플랫폼별 명령 구분 기호 문자를 제공하십시오.

예: "dir"

예: "ls"

환경 변수 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다.

name의 최대 문자 수는 215 - 2(또는 32,766)입니다. name= 문자가 포함되어 있는 경우 system은 오류를 발생시킵니다. 이름에 =이 포함된 환경 변수의 동작은 잘 정의되지 않습니다.

예: "PATH"

환경 변수 값으로, string형 스칼라, 문자형 벡터 또는 missing으로 지정됩니다. 해당 값을 missing으로 설정하여 환경 변수를 제거합니다.

예: "C:\TEMP"

출력 인수

모두 축소

명령 종료 상태로, 0이나 0이 아닌 정수로 반환됩니다. 명령이 성공한 경우 status의 값은 0이 됩니다. 그렇지 않은 경우 status는 0이 아닌 정수 값을 갖게 됩니다.

  • command에 앰퍼샌드 문자(&)가 포함되는 경우 statuscommand 시작 시의 종료 상태를 의미하게 됩니다.

  • command에 앰퍼샌드 문자(&)가 포함되지 않는 경우 statuscommand 완료 시의 종료 상태를 의미하게 됩니다.

운영 체제 명령의 출력값으로, 문자형 벡터로 반환됩니다. 시스템 셸이 비 Unicode® 문자를 제대로 나타내지 않을 수 있습니다.

제한 사항

  • MATLAB은 문자를 운영 체제 셸에서 허용되는 인코딩으로 변환합니다. command의 출력값은 명령 창에 표시할 MATLAB 인코딩으로 변환됩니다. 명령 실행 시 예기치 않은 결과가 나오는 경우 command 인수를 운영 체제 프롬프트에 직접 입력하여 입력값이 운영 체제에서 어떻게 처리되는지 확인하십시오.

  • system 명령이 실행 중일 때는 콜백 함수가 호출되지 않습니다.

세부 정보

모두 축소

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

모두 확장