Sök…


Introduktion

Det finns flera inbyggda funktioner och uttalanden för åtkomst till operativsystemet.

OS-KOMMANDO

Utför ett OS-kommando.

OS-COMMAND utan några alternativ kommer att starta ett nytt skal och inte lämna det - så kommer du på grafiskt OS: es att lämna ett fönster "hängande".

DEFINE VARIABLE cmd AS CHARACTER   NO-UNDO.

cmd = "dir".

OS-COMMAND VALUE(cmd).

Det finns tre alternativ: SILENT , NO-WAIT och NO-CONSOLE .

TYST

Efter bearbetning av ett operativsystemkommando pausar AVM-skalet. För att lämna fönstret i Windows GUI-plattformar måste du skriva exit. För att lämna fönstret i Windows-teckenplattformar, måste du skriva exit och trycka på RETURN eller MELLOMRUM. Du kan använda SILENT-alternativet för att eliminera denna paus. Använd det här alternativet endast om du är säker på att programmet, kommandot eller batchfilen inte genererar någon utgång till skärmen. Kan inte användas med NO-WAIT.

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

NEJ VÄNTA

I en miljö med flera uppgifter får AVM att omedelbart överföra kontrollen till nästa uttalande efter OS-COMMAND utan att vänta på att operativsystemkommandot ska avslutas. Kan inte användas med SILENT. Det här alternativet stöds endast i Windows.

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

På Linux / Unix måste du uppnå detta genom att gå före kommandot med ett & -signal istället:

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

NO-CONSOLE

Vid bearbetning av ett operativsystemkommando skapar AVM ett konsolfönster. Konsolfönstret kanske inte städas upp efter kommandot har utförts. Du kan använda alternativet NO-CONSOLE för att förhindra att detta fönster skapas i första hand.

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

Inga fel returneras någonsin från OS-COMMAND till Progress ABL så du måste kontrollera om fel på ett annat sätt, eventuellt skriva dem till en fil i ett shell-script eller liknande.

Opsys

OPSYS OPSYS returnerar vilket operativsystem programmet kör på:

MESSAGE OPSYS VIEW-AS ALERT-BOX.

Resultat:

ange bildbeskrivning här

Det kan användas för att välja vilket OS-verktyg som ska ringas:

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

OS-ERROR

Returnerar ett fel från ett tidigare OS-* representerat av ett heltal. Samtal som kan returnera en OS-ERROR är:

  • OS-APPEND
  • OS-COPY
  • OS-SKAPA-DIR
  • OS-DELETE
  • OS-RENAME
  • SPARA CACHE

Observera att OS-COMMAND saknas. Du måste själv hantera fel i OS-COMMAND.

Felnummer Beskrivning
0 Inget fel
1 Inte ägare
2 Ingen sådan fil eller katalog
3 Avbruten systemsamtal
4 I / O-fel
5 Dåligt filnummer
6 Inga fler processer
7 Inte tillräckligt med kärnminne
8 Åtkomst nekad
9 Dålig adress
10 fil existerar
11 Ingen sådan enhet
12 Inte en katalog
13 Är en katalog
14 Filtabellöverskridning
15 För många öppna filer
16 För stor fil
17 Inget utrymme kvar på enheten
18 Katalogen är inte tom
999 Ej mappat fel (ABL-standard)

OS-GETENV-funktion

Returnerar värdet på alla OS-miljövariabler.

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

På en Windows-maskin:

ange bildbeskrivning här

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

Resultat på en Linux-maskin med Bash som nuvarande skal:

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

OS-COPY

Kopiera en fil

KOPIERA källfilens målfil

Kopiera c:\temp\source-file.txt till c:\temp\target-file.txt . Du måste kontrollera OS-ERROR för framgång eller brist på det.

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-DELETE

Tar bort en fil eller ett filträd.

Som med många andra OS- * -verktyg måste du kontrollera status i OS-ERROR .

OS-DELETE fil-eller-dir-to-delete [RECURSIVE]

Radera hela /tmp/dir trädet:

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

Radera filen som heter c:\dir\file.txt

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

OS-SKAPA-DIR

Skapar en katalog, status finns i OS-ERROR

OS-CREATE-DIR-katalog

Skapa en katalog som heter /usr/local/appData

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

OS-APPEND

Lägg en fil till en annan. Status kontrolleras i OS-ERROR

OS-APPEND källmål

Lägger till targetfile.txt med sourcefile.txt :

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

OS-RENAME

Byt namn på en fil eller katalog. Status finns i OS-ERROR . Kan också användas för att flytta filer (eller flytta och byta namn på).

OS-RENAME gamla namn nytt namn

Byt namn på /tmp/old-name till /tmp/new-name :

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

Flytta fil c:\temp\old.txt till c:\new-dir\old.txt :

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

OS-DRIVES (endast Windows)

Returnerar en lista över alla enheter i ett system.

MESSAGE OS-DRIVES VIEW-AS ALERT-BOX.

Resultat med fyra enheter, C till F:

ange bildbeskrivning här

I Linux kommer listan helt enkelt att vara tom eftersom det enligt definitionerna inte är "enheter" anslutna. Lista kataloger görs på ett annat sätt ( INPUT FROM OS-DIR )



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow