수색…


소개

운영 체제에 액세스하기위한 몇 가지 기본 제공 함수 및 명령문이 있습니다.

OS-COMMAND

OS 명령을 실행합니다.

옵션이없는 OS-COMMAND는 새 셸을 시작하고 종료하지 않습니다. 따라서 그래픽 OS에서 실행됩니다 : es는 "hanging"창을 남깁니다.

DEFINE VARIABLE cmd AS CHARACTER   NO-UNDO.

cmd = "dir".

OS-COMMAND VALUE(cmd).

SILENT , NO-WAITNO-CONSOLE 세 가지 옵션이 있습니다.

조용한

운영 체제 명령을 처리 한 후 AVM 쉘이 일시 정지합니다. Windows GUI 플랫폼에서 창을 종료하려면 exit를 입력해야합니다. Windows 문자 플랫폼에서 창을 종료하려면 exit를 입력하고 RETURN 또는 SPACEBAR를 눌러야합니다. SILENT 옵션을 사용하여이 일시 중지를 제거 할 수 있습니다. 프로그램, 명령 또는 배치 파일이 화면에 아무런 출력도 생성하지 않는 경우에만이 옵션을 사용하십시오. NO-WAIT와 함께 사용할 수 없습니다.

OS-COMMAND SILENT VALUE("runprogram.exe").

대기 중

다중 작업 환경에서 운영 체제 명령이 종료 될 때까지 기다리지 않고 AVM이 OS-COMMAND 후 제어를 다음 명령문으로 즉시 전달하도록합니다. SILENT와 함께 사용할 수 없습니다. 이 옵션은 Windows에서만 지원됩니다.

OS-COMMAND NO-WAIT VALUE("DIR > dirfile.txt").

Linux / Unix의 경우 명령 앞에 & 사용하여이 작업을 수행해야합니다.

OS-COMMAND VALUE("ls >> file.txt &").

NO-CONSOLE

운영 체제 명령을 처리하는 동안 AVM은 콘솔 창을 작성합니다. 명령을 실행 한 후에는 콘솔 창이 정리되지 않을 수 있습니다. NO-CONSOLE 옵션을 사용하여이 창을 처음부터 만들지 않도록 할 수 있습니다.

OS-COMMAND NO-CONSOLE VALUE("startbach.bat").

오류는 OS-COMMAND 에서 진행 ABL로 반환되지 않으므로 다른 방법으로 오류를 확인해야합니다. 예를 들어 셸 스크립트 또는 비슷한 파일에 오류를 기록해야합니다.

OPSYS

OPSYS 은 프로그램이 실행중인 OS를 반환합니다.

MESSAGE OPSYS VIEW-AS ALERT-BOX.

결과:

여기에 이미지 설명을 입력하십시오.

이 유틸리티를 사용하여 호출 할 OS 유틸리티를 선택할 수 있습니다.

IF OPSYS = "LINUX" THEN 
    OS-COMMAND VALUE("ls -l").
ELSE 
    OS-COMMAND VALUE("dir").

OS-ERROR

정수로 표시된 이전 OS-* 호출에서 오류를 반환합니다. OS-ERROR를 반환 할 수있는 호출은 다음과 같습니다.

  • OS-APPEND
  • OS-COPY
  • OS-CREATE-DIR
  • OS 삭제
  • OS-RENAME
  • 캐시 저장

OS-COMMAND 가 누락되었습니다. OS-COMMAND에서 오류를 처리해야합니다.

오류 번호 기술
0 오류 없음
1 소유자가 아닙니다.
2 그러한 파일 또는 디렉토리 없음
중단 된 시스템 호출
4 I / O 오류
5 잘못된 파일 번호
6 더 이상 프로세스가 없습니다.
7 코어 메모리가 충분하지 않습니다.
8 사용 권한이 거부되었습니다.
9 잘못된 주소
10 파일이 존재
11 그러한 장치가 없습니다.
12 디렉토리가 아닙니다.
13 디렉토리
14 파일 테이블 오버 플로우
15 명 열려있는 파일이 너무 많습니다.
16 파일이 너무 큽니다
17 기기에 남은 공간이 없습니다.
18 디렉토리가 비어 있지 않음
999 맵핑되지 않은 오류 (ABL 기본값)

OS-GETENV 기능

모든 OS 환경 변수의 값을 반환합니다.

MESSAGE OS-GETENV ("OS") VIEW-AS ALERT-BOX.

Windows 컴퓨터 :

여기에 이미지 설명을 입력하십시오.

MESSAGE OS-GETENV ("SHELL") VIEW-AS ALERT-BOX.

현재의 쉘로 배시가있는 리눅스 머신에서의 결과 :

                        ┌────── Message ───────┐
                        │      /bin/bash       │
                        │ ──────────────────── │
                        │         <OK>         │
                        └──────────────────────┘

OS-COPY

파일 복사

COPY 소스 파일 target-file

c:\temp\source-file.txtc:\temp\target-file.txt 복사하십시오. 성공 또는 부족 여부를 확인하려면 OS-ERROR 를 확인해야합니다.

OS-COPY VALUE("c:\temp\source-file.txt")  VALUE("c:\temp\target-file.txt").
IF OS-ERROR <> 0 THEN DO:
    MESSAGE "An error occured" VIEW-AS ALERT-BOX ERROR.
END.

OS 삭제

파일 또는 파일 트리를 삭제합니다.

다른 많은 OS- * 유틸리티와 마찬가지로 OS-ERROR 에서 상태를 확인해야합니다.

OS-DELETE 파일 또는 디렉토리 삭제 [RECURSIVE]

전체 /tmp/dir 트리를 삭제하십시오.

OS-DELETE VALUE("/tmp/dir") RECURSIVE.

c:\dir\file.txt 라는 파일을 삭제하십시오 c:\dir\file.txt

OS-DELETE VALUE("c:\dir\file.txt").

OS-CREATE-DIR

디렉토리를 만듭니다. 상태는 OS-ERROR

OS-CREATE-DIR 디렉토리

/usr/local/appData 라는 디렉토리를 만듭니다.

OS-CREATE-DIR VALUE("/usr/local/appData").

OS-APPEND

하나의 파일을 다른 파일에 추가하십시오. 상태는 OS-ERROR 에서 확인됩니다.

OS-APPEND 소스 타겟

sourcefile.txt 와 함께 targetfile.txt 를 추가합니다.

OS-APPEND VALUE("sourcefile.txt") VALUE("targetfile.txt").

OS-RENAME

파일 또는 디렉토리의 이름을 바꿉니다. 상태는 OS-ERROR 입니다. 파일 이동 (또는 이동 및 이름 변경)에도 사용할 수 있습니다.

OS-rename oldname newname

/tmp/old-name/tmp/new-name 바꿉니다.

OS-RENAME VALUE("/tmp/old-name") VALUE("/tmp/new-name").

c:\temp\old.txt 파일을 c:\new-dir\old.txt .

OS-RENAME VALUE("c:\temp\old.txt") VALUE("c:\new-dir\old.txt").

OS-DRIVES (Windows 전용)

시스템의 모든 드라이브 목록을 리턴합니다.

MESSAGE OS-DRIVES VIEW-AS ALERT-BOX.

4 개 드라이브 (C에서 F까지)의 결과 :

여기에 이미지 설명을 입력하십시오.

리눅스에서는리스트에 아무런 "드라이브"도 연결되어 있지 않기 때문에 목록이 비어있게됩니다. 디렉토리 나열은 다른 방법으로 수행됩니다 ( INPUT FROM OS-DIR )



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow