[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Sep 2016
    Beiträge
    45

    Ordner im IFS leeren - wie machbar?

    Hallo : D,

    ich suche gerade nach einer Lösung um einen Ordner im IFS von allen Dateien zu säubern und das immer automatisch bei einem bestimmtem Programmaufruf.

    Die IFS Prozeduren von S. Klement bieten dafür ja anscheinend leider keine Möglichkeit.

    Meine Idee bisher ist mittels qsh die Funktion "rm" zu nutzen, und damit rekursiv den Ordner zu leeren. Mit Linux mach ich das ständig, daher diese Idee.

    Ist das sinnvoll oder würdet Ihr eine andere Möglichkeit nutzen?

    Grüße aus dem Norden
    Dominic

  2. #2
    Registriert seit
    Aug 2006
    Beiträge
    2.074
    Wenn Du dich ja mit der Syntax auskennst ist das eine gute Idee. Was besseres findest Du soleicht nicht

    GG 4947

  3. #3
    Registriert seit
    Sep 2016
    Beiträge
    45
    OK, das klingt doch schonmal gut. Nun muss ich nur noch rausfinden wie ich aus einem RPG Programm ein SH Befehl absetzen kann. Weist du dazu genaueres oder kann ich das irgendwo nachlesen?

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Das geht über den Aufruf:
    QSH CMD('rm *')
    Aber Achtung, es wird alles ohne Nachfragen gelöscht.
    Das Nonplusultra war schon immer der Befehl "rm -R *".
    Dieser gehr rekursiv über alle Verzeichnisse und löscht zum Schluss das Verzeichnis selber.
    Bei entsprechend hoher Stufe, z.B. "/", ist das das Aus für das System.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Sep 2016
    Beiträge
    45
    Also erstmal danke, ich habe gerade folgendes gefunden:
    D QzshSystem PR 10I 0 extproc('QzshSystem')
    D command * value options(*string)
    D cmd S 2053A varying

    damit soll es dann wohl wie mit CL Befehlen klappen. Bei mir klappt es jedoch nicht...bekomme immer -1 als result zurück. Hier mal der Code von meinem Test: http://pastebin.com/Mem1jvPu

    Unter der interaktiven qsh klappt der Aufruf aber ohne Probleme.

    @Fuerchau: QSH CMD(Befehl), kann man das einfach zo nutzen oder braucht man noch einen Prototypen oder ein bnddir?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    QSH ist ein Kommando wie alle anderen auch.
    Anstelle der C-Funktionen kannst du auch klassisch QCMDEXC verwenden.
    Dann bekommst du auch ggf. mehr Infos, was denn falsch gelaufen ist.

    PS:
    Ein "rm *" löscht natürlich nur das, wofür du berechtigt bist. Beim 1. Fehler wird aber aufgehört.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Sep 2016
    Beiträge
    45
    ah ok dank dir, werde das so einmal probieren. Vllt. klappt es ja dann.

  8. #8
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Code:
    D system          pr            10i 0 extproc('system')
    D cmd                             *   value options(*string)
    ...
     system('QSH CMD(''rm /deinDir'')');
    SYSTEM liefert dir auch einen Returncode zurück. Ist zwar primitiv, reicht aber meist aus.

    lg Andreas

  9. #9
    Registriert seit
    Dec 2014
    Beiträge
    310
    Möglicherweise verstehe ich die Frage nicht (..), aber warum eigentlich nicht mit dem dafür vorgesehenen AS/400 Cmd?

    DEL OBJLNK('/ordnername/*')

  10. #10
    Registriert seit
    Sep 2016
    Beiträge
    45
    Du hast die Frage verstanden : ) das ist eine gute nicht qsh Alternative. Deswegen auch meine Frage zu anderen Lösungen.
    Kurze Frage dazu, ist die Gefahr damit das "/" zu löschen genauso hoch wie mit qsh? Will das nicht einfach probieren.

    Wenn nicht sehe ich kein Vorteil zu qsh

  11. #11
    Registriert seit
    Dec 2014
    Beiträge
    310
    Nein, mit obiger Syntax wird nur der Inhalt des angegebenen Ordners gelöscht, nicht der Ordner selbst

  12. #12
    Registriert seit
    Sep 2016
    Beiträge
    45
    Sorry falsch ausgedrückt. Mir war klar das ich mit deinem Beispiel nur die Dateien in dem Ordner lösche. Was mich interessiert ist wenn man ausversehen beim DEL OBJLNK nur z.B. "/" angibt ob man dann auch wie mit "rm" einfach ohne Nachfrage das IFS leerräumt. Falls dem so ist gibt es dann ja keinen Unterschied zu "rm" außer dass das eine eine über QSH passiert und das andere über CL

Similar Threads

  1. PDF-Dokumente aus Ordner löschen
    By AK1 in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 19-04-16, 12:07
  2. IFS und Linux-Ordner mappen
    By sargejogi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 26-02-15, 19:52
  3. Move in IFS-Ordner
    By Joe in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 11-04-14, 18:05
  4. Ordner sichern ???
    By Koelch400 in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 02-10-02, 15:06
  5. Zugriff auf AS/400-Ordner nicht möglich
    By Sven Keiselt in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 30-01-01, 13:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •