Zoeken…


Invoering

Er zijn verschillende ingebouwde functies en verklaringen voor toegang tot het besturingssysteem.

OS-OPDRACHT

Voert een OS-opdracht uit.

OS-COMMAND zonder opties zal een nieuwe shell starten en deze niet verlaten - dus je zult op grafisch OS: es een venster "laten hangen".

DEFINE VARIABLE cmd AS CHARACTER   NO-UNDO.

cmd = "dir".

OS-COMMAND VALUE(cmd).

Er zijn drie opties: SILENT , NO-WAIT en NO-CONSOLE .

STIL

Na het verwerken van een opdracht van het besturingssysteem, pauzeert de AVM-shell. Als u het venster in Windows GUI-platforms wilt afsluiten, typt u exit. Als u het venster in Windows-tekenplatforms wilt afsluiten, typt u exit en drukt u op RETURN of SPATIEBALK. U kunt de optie STIL gebruiken om deze pauze te elimineren. Gebruik deze optie alleen als u zeker weet dat het programma, de opdracht of het batchbestand geen uitvoer naar het scherm genereert. Kan niet worden gebruikt met NO-WAIT.

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

NEE WACHT

Zorgt ervoor dat de AVM in een multi-tasking-omgeving de besturing onmiddellijk teruggeeft aan de volgende instructie na OS-COMMAND zonder te wachten tot het commando van het besturingssysteem wordt beëindigd. Kan niet worden gebruikt met SILENT. Deze optie wordt alleen ondersteund in Windows.

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

Op Linux / Unix moet je dit bereiken door in plaats daarvan het commando vooraf te gaan met een & -sign:

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

NO-CONSOLE

Tijdens het verwerken van een opdracht van het besturingssysteem, maakt de AVM een consolevenster. Het consolevenster wordt mogelijk niet opgeruimd nadat de opdracht is uitgevoerd. U kunt de optie GEEN CONSOLE gebruiken om te voorkomen dat dit venster überhaupt wordt gemaakt.

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

Er worden nooit fouten teruggestuurd van OS-COMMAND naar Progress ABL, dus u moet op een andere manier controleren op fouten en deze mogelijk naar een bestand schrijven in een shellscript of iets dergelijks.

Opsys

De OPSYS geeft terug op welk besturingssysteem het programma draait:

MESSAGE OPSYS VIEW-AS ALERT-BOX.

Resultaat:

voer hier de afbeeldingsbeschrijving in

Het kan worden gebruikt om te selecteren welk OS-hulpprogramma u wilt oproepen:

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

OS-ERROR

Retourneert een fout van een eerdere OS-* wordt weergegeven door een geheel getal. De oproepen die een OS-FOUT kunnen retourneren zijn:

  • OS-APPEND
  • OS-COPY
  • OS-CREATE-DIR
  • OS-DELETE
  • OS-RENAME
  • BESPAAR CACHE

Merk op dat OS-COMMAND ontbreekt. U moet zelf fouten in OS-COMMAND afhandelen.

Foutnummer Beschrijving
0 Geen fout
1 Geen eigenaar
2 Bestand of map bestaat niet
3 Onderbroken systeemoproep
4 I / O-fout
5 Onjuist bestandsnummer
6 Geen processen meer
7 Onvoldoende kerngeheugen
8 Toestemming geweigerd
9 Slecht adres
10 Bestand bestaat
11 Geen dergelijk apparaat
12 Geen map
13 Is een map
14 Overloop bestandstabel
15 Te veel open bestanden
16 Bestand te groot
17 Geen ruimte meer op het apparaat
18 Directory niet leeg
999 Niet-toegewezen fout (standaard ABL)

OS-GETENV-functie

Retourneert de waarde van elke OS-omgevingsvariabele.

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

Op een Windows-machine:

voer hier de afbeeldingsbeschrijving in

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

Resultaat op een Linux-machine met Bash als huidige shell:

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

OS-COPY

Kopieer een bestand

KOPIE bronbestand doelbestand

Kopieer c:\temp\source-file.txt naar c:\temp\target-file.txt . U moet OS-ERROR op succes of gebrek daaraan.

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

Hiermee verwijdert u een bestand of een bestandsstructuur.

Zoals bij veel andere OS- * hulpprogramma's, moet u de status controleren in OS-ERROR .

OS-DELETE file-of-dir-to-delete [RECURSIEF]

Verwijder de hele /tmp/dir boom:

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

Verwijder het bestand met de naam c:\dir\file.txt

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

OS-CREATE-DIR

Maakt een map aan, de status is in OS-ERROR

OS-CREATE-DIR-directory

Maak een map met de naam /usr/local/appData

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

OS-APPEND

Voeg het ene bestand toe aan het andere. Status wordt gecontroleerd in OS-ERROR

OS-APPEND brondoel

Voegt targetfile.txt met sourcefile.txt :

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

OS-RENAME

Hernoem een bestand of map. Status is in OS-ERROR . Kan ook worden gebruikt om bestanden te verplaatsen (of verplaatsen en hernoemen).

OS-RENAME oude naam nieuwe naam

Hernoem /tmp/old-name naar /tmp/new-name :

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

Verplaats bestand c:\temp\old.txt naar c:\new-dir\old.txt :

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

OS-DRIVES (alleen Windows)

Retourneert een lijst van alle schijven op een systeem.

MESSAGE OS-DRIVES VIEW-AS ALERT-BOX.

Resultaat met vier schijven, C tot en met F:

voer hier de afbeeldingsbeschrijving in

Op Linux is de lijst gewoon leeg, omdat er per definitie geen "schijven" zijn aangesloten. Het weergeven van mappen gebeurt op een andere manier ( INPUT FROM OS-DIR )



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow