Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst FTP vom zOS Host per Batch automatisieren

Mitglied: Loonie

Loonie (Level 1) - Jetzt verbinden

20.10.2007, aktualisiert 22.10.2007, 6154 Aufrufe, 4 Kommentare

Textdatei zeilenweise einlesen und Teilstrings weiterverarbeiten

Hallo,

für Migrationen möchte ich den Filedownload vom guten alten z/OS Host automatisieren. Bei einigen Hostdateien kenne ich den Namen (z.B. DATA1) bei anderen jedoch nur die Dateistufe und nicht die vorhandenen DSN. Meine Batchdatei sieht derzeit so aus:

01.
set MYMAND=1234 
02.
set MYPFAD=h:\migration\%MYMAND% 
03.
set MYUSER=username 
04.
set MYPASSW=topsecre 
05.
md %MYPFAD% 
06.
cd %MYPFAD% 
07.
echo %MYUSER% > download.txt 
08.
echo %MYPASSW% >> download.txt 
09.
echo quote site sbd=(ibm-273,iso8859-1) >> download.txt 
10.
echo dir 'PROD.MIGRA.MAND%MYMAND%.*' >> download.txt 
11.
echo get 'PROD.MIGRA.MAND%MYMAND%.DATA1' %MYPFAD%\mig_%MYMAND%_data1.txt >> download.txt 
12.
echo quit >> download.txt 
13.
ftp -s:download.txt ourhost > downprot.txt 
14.
del download.txt
Die downprot.txt sieht dann so aus:
<-----schnipp-------
Verbindung mit ourhost hergestellt.
blabla
blabla
ftp> dir 'PROD.MIGRA.MAND1234.*'
200 Port request OK.
125 List started OK
Volume Unit Referred Ext Used Recfm Lrecl BlkSz Dsorg Dsname
PRD256 3390 2007/10/16 1 15 VB 3999 27998 PS 'PROD.MIGRA.MAND1234.DATA1'
PRD253 3390 2007/10/16 1 15 VB 3999 27998 PS 'PROD.MIGRA.MAND1234.SA01A'
PRD252 3390 2007/10/16 1 15 VB 3999 27998 PS 'PROD.MIGRA.MAND1234.SA01B'
PRD256 3390 2007/10/16 1 15 VB 3999 27998 PS 'PROD.MIGRA.MAND1234.SA03A'
PRD256 3390 2007/10/16 1 15 VB 3999 27998 PS 'PROD.MIGRA.MAND1234.SA03B'
PRD256 3390 2007/10/16 1 15 VB 3999 27998 PS 'PROD.MIGRA.MAND1234.SA17A'
PRD256 3390 2007/10/16 1 15 VB 3999 27998 PS 'PROD.MIGRA.MAND1234.SA17B'
...
<-----schnapp-------

Es gibt Dateien mit SA00 - SA99, jeweils A und B. Das SA steht im Original an Stelle 115 und 116.
Die heruntergeladene Datei soll dann %MYPFAD%\mig_%MYMAND%_sa01a.txt usw. heißen.

Wie kann ich mir aus der downprot.txt eine neue download.txt basteln?
Oder gibt es einen ganz anderen Weg?

Vielen Dank und viele Grüße

Loonie
Mitglied: Biber
22.10.2007 um 08:47 Uhr
Moin Loonie,

willkommen im Forum.

Wenn Der DIR-Output in der Datei Downprot.txt so aussieht wie gepostet, dann solltest Du die einzelnen Member mit folgender (Test-) Zeile am CMD-Prompt rausfieseln können:
01.
for /f "tokens=2 delims='" %i in ( 'findstr" "downprod.txt"') do @echo %i 
02.
PROD.MIGRA.MAND1234.DATA1 
03.
PROD.MIGRA.MAND1234.SA01A 
04.
PROD.MIGRA.MAND1234.SA01B 
05.
PROD.MIGRA.MAND1234.SA03A 
06.
PROD.MIGRA.MAND1234.SA03B 
07.
PROD.MIGRA.MAND1234.SA17A 
08.
PROD.MIGRA.MAND1234.SA17B
Wenn Du das überprüft hast, dann kannst Du diese Zeile sinngemäß in einer Batchdatei verwenden und dort mit...

01.
.... 
02.
for /f "tokens=2 delims='" %%i in ( 'findstr" "downprod.txt"') do ( 
03.
   @for /f "tokens=1-4 delims=." %%a in ("%%i") do ( 
04.
   REM  %a.%b.%c.%d   entsppicht ganzem Namen (Pointer+Dataset) 
05.
   Echo get ' %i'   %Mypfad%\mig_%%c_%%d_data1.txt >>download2.txt 
06.
))
Diese Datei Download2.txt kannst Du als neue Input-Datei nehmen (denke ich).
[ungetestete Skizze, da ich keinen z/OS-Server unterm Tisch habe]

Grüße
Biber
Bitte warten ..
Mitglied: Loonie
22.10.2007 um 15:42 Uhr
Hi Biber,

vielen vielen Dank für die schnelle Hilfe. Schade, dass Du keinen Host daheim hast
Ich geb in meiner Batch jetzt die Dateinamen mit ls anstelle von dir aus, da kommen nur die Dateinamen.

01.
echo ls 'PROD.MIGRA.MAND%MYMAND%.*' /downdir.txt >> download.txt
Die downdir.txt sieht dann so aus:
01.
'PROD.MIGRA.MAND1234.DATA1' 
02.
'PROD.MIGRA.MAND1234.SA01A' 
03.
'PROD.MIGRA.MAND1234.SA01B' 
04.
'PROD.MIGRA.MAND1234.SA03A' 
05.
'PROD.MIGRA.MAND1234.SA03B' 
06.
'PROD.MIGRA.MAND1234.SA17A' 
07.
'PROD.MIGRA.MAND1234.SA17B'
Leider hab ich den for /f bislang noch nicht kapiert...Wie krieg ich aus der downdir.txt folgende Form hin:
01.
echo get 'PROD.MIGRA.MAND1234.DATA1' %MYPFAD\mig_%MYMAND_data1.txt >> download2.txt 
02.
echo get 'PROD.MIGRA.MAND1234.SA01A' %MYPFAD\mig_%MYMAND_sa01a.txt >> download2.txt 
03.
echo get 'PROD.MIGRA.MAND1234.SA01B' %MYPFAD\mig_%MYMAND_sa01b.txt >> download2.txt 
04.
usw.
Muchas gracias. Viele Grüße

Loonie
Bitte warten ..
Mitglied: Biber
22.10.2007 um 18:38 Uhr
Moin Loonie,

war ein Scherz - natürlich habe ich auch ein paar z/OS-Büchsen hier im Park....

Also- wenn Du die Einschränkung auf die "richtigen" Datasets schon auf dem Host gemacht hast und somit ALLE Zeilen der Download.txt verwertet werden können, dann kannst Du folgende Simulation am CMD-Prompt GEFAHRLOS nachturnen:

01.
>for /f "tokens=1-4 delims='." %a in (downprot.txt) do @echo get '%a.%b.%c.%d' mypfad\mig_%c_%d_data1.txt 
02.
get 'PROD.MIGRA.MAND1234.DATA1' mypfad\mig_MAND1234_DATA1_data1.txt 
03.
get 'PROD.MIGRA.MAND1234.SA01A' mypfad\mig_MAND1234_SA01A_data1.txt 
04.
get 'PROD.MIGRA.MAND1234.SA01B' mypfad\mig_MAND1234_SA01B_data1.txt 
05.
get 'PROD.MIGRA.MAND1234.SA03A' mypfad\mig_MAND1234_SA03A_data1.txt 
06.
get 'PROD.MIGRA.MAND1234.SA03B' mypfad\mig_MAND1234_SA03B_data1.txt 
07.
get 'PROD.MIGRA.MAND1234.SA17A' mypfad\mig_MAND1234_SA17A_data1.txt 
08.
get 'PROD.MIGRA.MAND1234.SA17B' mypfad\mig_MAND1234_SA17B_data1.txt
[Nur die erste Zeile, gekennzeichnet durch das ">"-zeichen wurde eingegeben, der Rest ist Output.]

Fir FOR/F -Anweisung zerlegt jede Zeile in der Input-Datei "downprot.txt" in einzelne Token und zwar immer dort, wo die definierten Delimiter "'" oder "." auftreten.
Somit besteht jede Zeile nur noch aus 4 Tokens (%a, %b, %c, %d), die im @echo-Teil wieder passend zusammengestoppelt werden.
Spiel ein bisschen mit dieser Echo-Zeile am CMD-Prompt herum - hilft Dir mehr, als wenn ich Dir jetzt eine Zeichnung mache.

Wenn Du diese (sinngemäße) Zeile in einem Batch verwenden willst, musst Du jeweils statt einem %-Zeichen deren zwo eintippseln.
Also %%a statt %a, %%b statt b usw.

Gruß und saludos
Castor
Bitte warten ..
Mitglied: Loonie
22.10.2007 um 20:25 Uhr
01.
for(i = 1; i <= 1000; ++i) 
02.
     printf("RESPECT BIBER!!!");
Vielen vielen Dank.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch passives FTP upload
gelöst Frage von weltklasseBatch & Shell2 Kommentare

Hallo, ich versuche per Batch eine Textdatei auf einen FTP-Server hochzuladen. Es handelt sich um einen "passiven FTP-Zugriff". Leider ...

CMS
Vom Netzlaufwerk auf den FTP via Batch?
gelöst Frage von FuryStageCMS6 Kommentare

Hallo zusammen, ich hab momentan ein Problem Dienstpläne die auf deinem Netzlaufwerk sind Via FTP aktuell zu halten. Ich ...

Batch & Shell
Mit batch auf einen FTP Server kommen
gelöst Frage von deinernstjetztBatch & Shell2 Kommentare

Hallo, ich möchte mit einem Batch Script Dateien auf einem FTP Server bearbeiten. Wie lautet der Befehl um auf ...

Batch & Shell
FTP Batch mit Semaphoren Datei
Frage von DirkK73Batch & Shell1 Kommentar

Hallo zusammen, ich bräuchte Eure Hilfe beim Erstellen eines Batches das folgende Aufgabe hat: Wir haben interne virtuelle Server. ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 2 TagenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 3 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

Netzwerkmanagement
Netzwerkmanagment im Haus mit Switch, Panel und pfsense
gelöst Frage von CorraggiounoNetzwerkmanagement13 Kommentare

hi zusammen, wir sind gerade dabei das ganze Haus bzw. die einzelnen Zimmer mit netzwerkdosen zu versorgen. Vom Keller ...

Vmware
Server 2008 r2 vmware terminalserver
Frage von MasterCVmware12 Kommentare

Guten Abend zusammen, ich hoffe , dass einer von euch mir weiterhelfen kann ,bei meinem kack Problem ! Ist ...

Google Android
Empfehlung: Android Ortungsapp
gelöst Frage von certifiedit.netGoogle Android12 Kommentare

Guten Morgen, grundsätzlich vorweg, ich wollte mich eben schlau machen, bzgl einer Ortungsapp, welche Androidbasiert einem anderen Androidsmartphone mitteilt, ...