progress-4gl
OS-utilities
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:
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:
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:
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
)