Recherche…


Introduction

Il existe plusieurs fonctions et instructions intégrées pour accéder au système d'exploitation.

OS-COMMAND

Exécute une commande OS.

OS-COMMAND sans aucune option démarrera un nouveau shell et ne le quittera pas. Ainsi, sous OS graphique: vous laisserez une fenêtre "en suspens".

DEFINE VARIABLE cmd AS CHARACTER   NO-UNDO.

cmd = "dir".

OS-COMMAND VALUE(cmd).

Il existe trois options: SILENT , NO-WAIT et NO-CONSOLE .

SILENCIEUX

Après avoir traité une commande du système d'exploitation, le shell AVM s'interrompt. Pour quitter la fenêtre dans les plates-formes d'interface graphique Windows, vous devez taper exit. Pour quitter la fenêtre dans les plates-formes de caractères Windows, vous devez taper exit et appuyer sur RETOUR ou sur ESPACE. Vous pouvez utiliser l'option SILENT pour éliminer cette pause. Utilisez cette option uniquement si vous êtes certain que le programme, la commande ou le fichier de commandes ne génère aucune sortie à l'écran. Ne peut pas être utilisé avec NO-WAIT.

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

NON ATTENDS

Dans un environnement multitâche, l'AVM passe immédiatement le contrôle à l'instruction suivante après l'OS-COMMAND sans attendre la fin de la commande du système d'exploitation. Ne peut pas être utilisé avec SILENT. Cette option est prise en charge uniquement sous Windows.

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

Sur Linux / Unix, vous devrez le faire en précédant la commande par un signe & -sign:

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

NO-CONSOLE

Lors du traitement d'une commande du système d'exploitation, l'AVM crée une fenêtre de console. La fenêtre de la console ne peut pas être nettoyée après l'exécution de la commande. Vous pouvez utiliser l'option NO-CONSOLE pour empêcher cette fenêtre d'être créée en premier lieu.

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

Aucune erreur n’est jamais renvoyée de OS-COMMAND vers Progress ABL, vous devez donc rechercher les erreurs d’une autre manière, en les écrivant éventuellement dans un fichier dans un script shell ou similaire.

OPSYS

La OPSYS OPSYS renvoie le système d'exploitation sur lequel le programme est exécuté:

MESSAGE OPSYS VIEW-AS ALERT-BOX.

Résultat:

entrer la description de l'image ici

Il peut être utilisé pour sélectionner l'utilitaire OS à appeler:

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

OS-ERROR

Retourne une erreur d'un précédent appel OS-* représenté par un entier. Les appels pouvant renvoyer une erreur OS sont les suivants:

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

Notez que OS-COMMAND est manquant. Vous devez gérer vous-même les erreurs dans OS-COMMAND.

Numéro d'erreur La description
0 Pas d'erreur
1 Pas propriétaire
2 Aucun fichier ou répertoire de ce nom
3 Appel système interrompu
4 Erreur d'E / S
5 Numéro de dossier incorrect
6 Plus de processus
7 Pas assez de mémoire de base
8 Permission refusée
9 Mauvaise adresse
dix le fichier existe
11 Aucun tel appareil
12 Pas un annuaire
13 Est un directeur
14 Débordement de table de fichiers
15 Trop de fichiers ouverts
16 Fichier trop large
17 Pas d'espace disponible sur le périphérique
18 Répertoire non vide
999 Erreur non mappée (par défaut ABL)

Fonction OS-GETENV

Renvoie la valeur de toute variable d'environnement du système d'exploitation.

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

Sur une machine Windows:

entrer la description de l'image ici

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

Résultat sur une machine Linux avec Bash en tant que shell actuel:

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

OS-COPY

Copier un fichier

Fichier cible du fichier source COPY

Copiez c:\temp\source-file.txt dans c:\temp\target-file.txt . Vous devez vérifier OS-ERROR pour la réussite ou l'absence de celle-ci.

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

Supprime un fichier ou une arborescence de fichiers.

Comme avec beaucoup d'autres utilitaires OS- *, vous devez vérifier l'état dans OS-ERROR .

OS-DELETE fichier-ou-dir-to-delete [RECURSIVE]

Supprimez l’arbre entier /tmp/dir :

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

Supprimez le fichier appelé c:\dir\file.txt

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

OS-CREATE-DIR

Crée un répertoire, le statut est dans OS-ERROR

Répertoire OS-CREATE-DIR

Créez un répertoire appelé /usr/local/appData

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

OS-APPEND

Ajouter un fichier à un autre. L'état est vérifié dans OS-ERROR

Cible source OS-APPEND

Ajoute targetfile.txt avec sourcefile.txt :

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

OS-RENAME

Renommez un fichier ou un répertoire. L'état est dans OS-ERROR . Peut également être utilisé pour déplacer des fichiers (ou les déplacer et les renommer).

OS-RENAME oldname newname

Renommez /tmp/old-name en /tmp/new-name :

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

Déplacez le fichier c:\temp\old.txt vers c:\new-dir\old.txt :

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

OS-DRIVES (Windows uniquement)

Renvoie une liste de tous les lecteurs d'un système.

MESSAGE OS-DRIVES VIEW-AS ALERT-BOX.

Résultat avec quatre lecteurs, C à F:

entrer la description de l'image ici

Sous Linux, la liste sera simplement vide car, par définition, aucun "lecteur" n'est connecté. Lister les répertoires se fait d’une autre manière ( INPUT FROM OS-DIR )



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow