Suche…


Einführung

Es gibt mehrere integrierte Funktionen und Anweisungen für den Zugriff auf das Betriebssystem.

OS-COMMAND

Führt einen OS-Befehl aus.

OS-COMMAND ohne Optionen startet eine neue Shell und beendet sie nicht - Sie werden also auf grafischen OS: es ein Fenster "hängen lassen".

DEFINE VARIABLE cmd AS CHARACTER   NO-UNDO.

cmd = "dir".

OS-COMMAND VALUE(cmd).

Es gibt drei Optionen: SILENT , NO-WAIT und NO-CONSOLE .

LEISE

Nach der Verarbeitung eines Betriebssystembefehls wird die AVM-Shell angehalten. Um das Fenster auf Windows-GUI-Plattformen zu schließen, müssen Sie exit eingeben. Um das Fenster auf Windows-Zeichenplattformen zu schließen, müssen Sie exit eingeben und RETURN oder die LEERTASTE drücken. Mit der Option SILENT können Sie diese Pause beseitigen. Verwenden Sie diese Option nur, wenn Sie sicher sind, dass das Programm, der Befehl oder die Batchdatei keine Ausgabe auf dem Bildschirm generiert. Kann nicht mit NO-WAIT verwendet werden.

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

KEIN WARTEN

Bewirkt, dass AVM in einer Multitasking-Umgebung unmittelbar nach dem OS-COMMAND die Kontrolle an die nächste Anweisung zurückgibt, ohne auf das Beenden des Betriebssystembefehls zu warten. Kann nicht mit SILENT verwendet werden. Diese Option wird nur in Windows unterstützt.

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

Unter Linux / Unix müssen Sie dies erreichen, indem Sie dem Befehl stattdessen ein & -sign eingeben.

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

NO-CONSOLE

Während der Verarbeitung eines Betriebssystembefehls erstellt AVM ein Konsolenfenster. Das Konsolenfenster kann nach der Ausführung des Befehls nicht bereinigt werden. Mit der Option NO-CONSOLE können Sie verhindern, dass dieses Fenster überhaupt erstellt wird.

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

Es werden keine Fehler von OS-COMMAND an Progress ABL zurückgegeben. Sie müssen also auf andere Weise nach Fehlern OS-COMMAND , möglicherweise in eine Datei in einem Shell-Skript oder ähnlichem schreiben.

OPSYS

Die OPSYS gibt an, unter welchem ​​Betriebssystem das Programm läuft:

MESSAGE OPSYS VIEW-AS ALERT-BOX.

Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Mit dieser Option können Sie auswählen, welches Betriebssystem aufgerufen werden soll:

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

OS-FEHLER

Gibt einen Fehler eines vorherigen OS-* , der durch eine Ganzzahl dargestellt wird. Die Aufrufe, die einen OS-ERROR zurückgeben können, sind:

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

Beachten Sie, dass OS-COMMAND fehlt. Sie müssen Fehler in OS-COMMAND selbst behandeln.

Fehlernummer Beschreibung
0 Kein Fehler
1 Nicht Besitzer
2 Keine solche Datei oder Ordner
3 Unterbrochener Systemaufruf
4 E / A-Fehler
5 Ungültige Dateinummer
6 Keine Prozesse mehr
7 Nicht genügend Hauptspeicher
8 Zugang verweigert
9 Schlechte Adresse
10 Datei existiert
11 Kein solches Gerät
12 Kein Verzeichnis
13 Ist ein Verzeichnis
14 Datentabellenüberlauf
fünfzehn Zu viele offene Dateien
16 Datei zu groß
17 Kein Speicherplatz auf Gerät
18 Verzeichnis nicht leer
999 Nicht zugeordneter Fehler (Standardeinstellung ABL)

OS-GETENV-Funktion

Gibt den Wert einer beliebigen Betriebssystemumgebungsvariablen zurück.

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

Auf einem Windows-Computer:

Geben Sie hier die Bildbeschreibung ein

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

Ergebnis auf einem Linux-Rechner mit Bash als aktuelle Shell:

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

OS-COPY

Kopieren Sie eine Datei

COPY-Quelldatei-Zieldatei

Kopieren Sie c:\temp\source-file.txt nach c:\temp\target-file.txt . Sie müssen OS-ERROR auf Erfolg oder Mangel prüfen.

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

Löscht eine Datei oder einen Dateibaum.

Wie bei vielen anderen OS- * -Dienstprogrammen müssen Sie den Status in OS-ERROR überprüfen.

OS-DELETE Datei oder Verzeichnis zum Löschen [RECURSIVE]

Löschen Sie den gesamten /tmp/dir Baum:

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

Löschen Sie die Datei mit dem Namen c:\dir\file.txt

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

OS-CREATE-DIR

Erzeugt ein Verzeichnis, Status befindet sich in OS-ERROR

OS-CREATE-DIR-Verzeichnis

Erstellen Sie ein Verzeichnis mit dem Namen /usr/local/appData

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

OS-APPEND

Eine Datei an eine andere anhängen. Der Status wird in OS-ERROR geprüft

OS-APPEND-Quellziel

Hängt targetfile.txt mit sourcefile.txt :

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

OS-RENAME

Benennen Sie eine Datei oder ein Verzeichnis um. Status ist in OS-ERROR . Kann auch zum Verschieben von Dateien (oder Verschieben und Umbenennen) verwendet werden.

OS-RENAME alter Name neuer Name

Benennen Sie /tmp/old-name in /tmp/new-name :

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

Verschieben Sie die Datei c:\temp\old.txt nach c:\new-dir\old.txt :

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

OS-DRIVES (nur Windows)

Gibt eine Liste aller Laufwerke in einem System zurück.

MESSAGE OS-DRIVES VIEW-AS ALERT-BOX.

Ergebnis mit vier Laufwerken C bis F:

Geben Sie hier die Bildbeschreibung ein

Unter Linux ist die Liste einfach leer, da dort durch Definitionen keine "Laufwerke" verbunden sind. Das Auflisten von Verzeichnissen erfolgt auf andere Weise ( INPUT FROM OS-DIR )



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow