Anmelden

View Full Version : COPY *.* aus IFS in PF



Seiten : [1] 2

Liebhoff
28-03-08, 09:26
Hallo zusammen,

ich brauche mal eine Idee um folgendes zu lösen. Ich habe im IFS in einem Ordner TXT Dateien mit völlig unterscheidlichen Namen, aber immer gleicher Struktur. Diese möchte ich per CPYFRMSTMF in eine physiche Datei kopieren, wobei die Sätze jeweils mit *ADD in ein und die selbe Datei hinzugefügt werden sollen.

Fragen dazu:
Gibt es eine Art "COPY *.*" mit dem ich alle Dateien auf einen Rutsch kopieren kann ?

Oder kann ich alternativ eine Liste der Dateinamen im IFS als Physiche Datei erzeugen, die ich dann sequenziell verarbeiten kann ? (ähnlich DSPOBJD nach * OUTFILE)

Oder hat jemand eine andere Schlaue Idee.

Danke im Voraus
Thomas

Fuerchau
28-03-08, 09:30
Hierzu ist die QSH hilfreich:

QSH CMD('cat * >/qsys.lib/mylib.lib/myfile.file/myfile.mbr')

Der cat-Befehl gibt einfach den Inhalt einer Datei an STDOUT aus, die mit dem ">" umgeleitet wird.

Liebhoff
28-03-08, 09:45
Muss ich die PC Dateien aus dem IFS dann erst als eine Datei im IFS zusammenfassen und dann mit CPYFRMSTMF in eine PF kopieren oder geht das sozusagen wie von dir vorgeschlagen in einem Rutsch, ich denke das würde nur funktionieren wenn ich im IFS AS/400 Member hätte, oder ? Sonst bräuchte man ja generell kein CPYFRMSTMF.

Thomas

Fuerchau
28-03-08, 10:11
Hier schlägt die Shell-Funktion zu.

cat File1 [File2] ...

An Stelle von direkten Namen können eben auch Ausdrücke verwendet werden.

Z.b.:

ls * <= listet alle Dateien auf STDOUT
ls *.txt
ls a?b*

usw.

Die Shell übergibt auf Grund des Ausdruckes eben alle Namen des aktuellen Verzeichnisses als Argumente an das Programm.

cat *

bekommt also alle Dateinamen übergeben und gibt diese auf STDOUT aus.

Natürlich solltest du
a) einen cd /home/... in QSH
oder b) einen CD per CLP vorher
ausführen.

Also:

QSH CMD('cd /home.... ;cat * >...')

Wichtig: mit dem Semikolon kann man mehrere Befehle (auch ganze Scripte) an die QSH übergeben.

Das ">..." wirkt wie ein OVRDBF für die QSH.
OVRDBF FILE(STDOUT) TOFILE(MYFILE)

Liebhoff
28-03-08, 10:18
Danke, das sollte weiterhelfen, werde damit ein wenig experimentieren.

Thomas

P.S. Übrigens unter den Kollegen hier bewerten wir die Beiträge mit "Fuerchaus" je mehr "Fuerchaus" ein Beitrag hat, um so besser ist er. Kannst Dir also schon was darauf einbilden ....

Fuerchau
28-03-08, 10:20
??? das solltest du mir mal näher erklären ;)

holgerscherer
28-03-08, 10:54
??? das solltest du mir mal näher erklären ;)

Das meint er wohl so: Es gibt eine neue Masseinheit "Baldur". Je mehr Baldur seine Kollegen hochhalten, um so mehr gut ;-)

-h

Fuerchau
28-03-08, 11:11
Ich glaube das ist der falsche Ansatz.

Je weniger "Baldur" ich habe, desto besser, da ich ja selber auf die Lösung gekommen bin ;););)

cimbala
28-03-08, 19:38
@Liebhoff:
ist unsere Maßeinheit jetzt nicht mehr "Fuerchau" sondern "Baldur" ? :)

Liebhoff
28-03-08, 19:50
Der Umrechnungskurs ist 1:1 also 1 Fuerchau = 1 Baldur woraus letztendlich wie immer folgt:

x * Fuerchau = Qualitätsmaß der Beitrags = Größe des Informationsgahaltes = y * Baldur

Alles klar ?

Supi ! ;) ;)