xml per batch automatisch absenden?
Hi,
ich versuche ein bat anzulegen klappt aber irgendwie nicht.
Wir haben ein Tool welches xml an ein System schickt. Dazu muss ich in die Kommandozeile (cmd) und jede einzelne xml aufrufen damit diese ans System geschickt wird. Ich möchte aber dass jede xml in meinem Ordner nacheinander abgeschickt wird.
Um eine xml abzuschicken muss in der dos-box (cmd) in folgendes Verzeichnis gehen
J:\Tool\Test\xmltool
Dort muss ich dann folgenden Eintrag machen um eine xml abzuschicken (hier das Beispiel für die anfrage1.xml:
in meinem ordner allexml sind aber 250 xml enthalten. Jetzt müsste ich für jede xml die aufgeführte Eingabe vornehmen? Kann man das automatisieren???
Allerdings gibt es noch einen Haken. Das Testool legt die Antwort einer Anfrage in den gleichen Ordner wo die Anfragen liegen (allexml). Wenn mein Batch jetzt läuft sollen die Antworten nicht ans System schicken. Man kann die Antwort xml am Dateinamen erkennen. Und zwar lauten die letzten Zeichen des Dateinamens „???????out.xml“
D.h. die letzten 7 Zeichen lauten immer „out.xml“ mit einer verschiedenen anzahl von Zeichen davor. Diese sollen von der Batch Datei nicht berücksichtigt werden.
Jemand eine Idee???
ich versuche ein bat anzulegen klappt aber irgendwie nicht.
Wir haben ein Tool welches xml an ein System schickt. Dazu muss ich in die Kommandozeile (cmd) und jede einzelne xml aufrufen damit diese ans System geschickt wird. Ich möchte aber dass jede xml in meinem Ordner nacheinander abgeschickt wird.
Um eine xml abzuschicken muss in der dos-box (cmd) in folgendes Verzeichnis gehen
J:\Tool\Test\xmltool
Dort muss ich dann folgenden Eintrag machen um eine xml abzuschicken (hier das Beispiel für die anfrage1.xml:
java – jar xmltool.jar testmaschine002 allexml/anfrage1.xml
in meinem ordner allexml sind aber 250 xml enthalten. Jetzt müsste ich für jede xml die aufgeführte Eingabe vornehmen? Kann man das automatisieren???
Allerdings gibt es noch einen Haken. Das Testool legt die Antwort einer Anfrage in den gleichen Ordner wo die Anfragen liegen (allexml). Wenn mein Batch jetzt läuft sollen die Antworten nicht ans System schicken. Man kann die Antwort xml am Dateinamen erkennen. Und zwar lauten die letzten Zeichen des Dateinamens „???????out.xml“
D.h. die letzten 7 Zeichen lauten immer „out.xml“ mit einer verschiedenen anzahl von Zeichen davor. Diese sollen von der Batch Datei nicht berücksichtigt werden.
Jemand eine Idee???
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 117028
Url: https://administrator.de/contentid/117028
Ausgedruckt am: 15.11.2024 um 01:11 Uhr
17 Kommentare
Neuester Kommentar
Zitat von @Bacaaardi:
Hi,
ich versuche ein bat anzulegen klappt aber irgendwie nicht.
...
Jemand eine Idee???
Hi,
ich versuche ein bat anzulegen klappt aber irgendwie nicht.
...
Jemand eine Idee???
Ja, versuche mal fehlende Wörter wie "hat" zu ergänzen und die Taste ? nur EINMAL kurz zu drücken.
Ausserdem fehlt in deinen Sätzen das Komma.
for /f "delims=" %A in ('dir /B/S allexm\*.xml^|findstr /V /I "out.xml$"' ') Do @echo java – jar xmltool.jar testmaschine002 %~fA
In einer Batchdatei sind die %-Zeichen zu verdoppeln (ungetestet)
Gruß
LotPings
Der Befehl ist ja auch auf die Eingabe in einem Cmd Fenster im Ordner J:\Tool\Test\xmltool ausgelegt.
Wenn du das alles von einer Batch aus machen willst, musst du die Befehle halt ergänzen.
Gruß
LotPings
Edit: Log eingebaut
Edit2: Umfangreiche Änderungen
Edit3: Pfad geändert
Edit4: MS entfernt
Wenn du das alles von einer Batch aus machen willst, musst du die Befehle halt ergänzen.
@echo off&Setlocal
Set "DatumZeit=%date:~-4%-%date:~-7,2%-%date:~-10,2%_%time:~0,8%"
Set "DatumZeit=%DatumZeit::=-%"
echo Wenn DatumZeit=%DatumZeit% nicht ok Strg-C zum Abbrechen, sonst
Pause
Echo ====== %DatumZeit% ====== >>"%~dpn0.Log"
pushd J:\Tool\Test\xmltool
for /f "delims=" %%A in ('
dir /B/S allexml\*.xml^|findstr /V /I "out.xml$" '
) Do (
java -jar xmltool.jar testumgebung002 "%%~fA"
echo "%%~fA" bearbeitet >>"%~dpn0.Log"
)
Set "ArchivDZ=J:\xmltool\Testergebnisse\%DatumZeit%\"
if Not exist "%ArchivDZ%" MD "%ArchivDZ%"
Move "allexml\*out.xml" "%ArchivDZ%"
Pause
Popd
Gruß
LotPings
Edit: Log eingebaut
Edit2: Umfangreiche Änderungen
Edit3: Pfad geändert
Edit4: MS entfernt
Wenn ich das bat ausführe dann listet er die xml in der DOS-Box auf. Geht 2 bis 3 Sekunden. Die Anfragen werden aber nicht an das System geschickt gebe ich nur > eine xml wieder händisch an braucht allein eine Antwort mehrere Sekunden.
Ich weiss jetzt nicht was deine Batch macht, aber die Anfragen werden nicht so verarbeitet wie gewünscht.
Mon,Ich weiss jetzt nicht was deine Batch macht, aber die Anfragen werden nicht so verarbeitet wie gewünscht.
wie wäre es mit LESEN,
es werden zur Kontrolle nur die Befehle ANGEZEIGT, ich schrieb doch schon einmal:
Wenn die Ausgabe korrekt erscheint, das Echo hinter dem Do entfernen.
Echo
Gruß
LotPings
Ich kann da keinen Gund erkennen warum er nur Dateien die mit 1 beginnen verarbeiten sollte, es sei den das ist beim übertragen reingerutscht.
Das Codefenster hat oben einen klickbaren Quelltext Hinweis. Am Besten dieses Quelltextfenster öffnen und von dort mit Strg-A Strg-C alles kopieren.
Ich habe oben eine Änderung eingebaut die jetzt in eine Log-Datei schreibt mit gleichem Namen und Ordner wie die Batchdatei aber mit der Erweiterung ".Log".
Probiere es einfach mal mit dieser neuen Version.
Gruß
LotPings
Das Codefenster hat oben einen klickbaren Quelltext Hinweis. Am Besten dieses Quelltextfenster öffnen und von dort mit Strg-A Strg-C alles kopieren.
Ich habe oben eine Änderung eingebaut die jetzt in eine Log-Datei schreibt mit gleichem Namen und Ordner wie die Batchdatei aber mit der Erweiterung ".Log".
Probiere es einfach mal mit dieser neuen Version.
Gruß
LotPings
Zitat von @Bacaaardi:
Eine Frage noch:
ist es möglich alle ????out.xml Dateien zu archivieren. D.h. nach dem ich die Anfragen alle durch habe sollen die Dateien bei denen die letzten 7 Zeichen out.xml lauten in einen seperaten Ordner zu
kopieren?
Natürlich, ausschneiden einfügen ist aber ein GUI Metapher, den Move Befehl gibt es schon viel länger.Eine Frage noch:
ist es möglich alle ????out.xml Dateien zu archivieren. D.h. nach dem ich die Anfragen alle durch habe sollen die Dateien bei denen die letzten 7 Zeichen out.xml lauten in einen seperaten Ordner zu
kopieren?
Es soll ein Ordner mit Zeistempel erstellt werden (YYYY-MM-DD HH:MM:SS) in den die out.xml Dateien aus dem allexml Ordner ausgeschnitten und dann in den erstelleten Ordner mit Zeitstempel kopiert werden.
Mit dem Doppelpunkt geht das garnicht, der ist für Laufwerke reserviert.Pfad für die Archivierung: J:\xmltool\Testergebnisse.
Beipsiel dann: J:\xmltool\Testergebnisse\2009-05-29 11:05:12
Da das Datum Format über die Systemsteuerung individuell eingestellt werden kann gibt es universelle Lösungen mit vbscript, 3rdparty Tools und auch komplexe Batchdateien.
Es gibt die Variablen %Date% und %Time% die das voreingestellte Format ausgeben.
Man kann aber durch Ummstellungen dein gewünschtes Format einfach erzielen.
Von tt.mm.jjj ausgehend habe ich das alles wieder oben eingebaut.
Gruß
LotPings
Zitat von @Bacaaardi:
Hi,
also beim Start des Batchs fragt er mich ob die Uhrzeit bzw. Datum ok ist. Nach drücken einer Taste werden alle anfragen korrekt abgeschickt.
Leider klappt der Move nicht. Auch der Ordner mit Zeitstempel wird nicht erstellt. Sehe aber keine Fehlermeldung
Ich baue nochmal eine Änderung ein, allexml fehlte.Hi,
also beim Start des Batchs fragt er mich ob die Uhrzeit bzw. Datum ok ist. Nach drücken einer Taste werden alle anfragen korrekt abgeschickt.
Leider klappt der Move nicht. Auch der Ordner mit Zeitstempel wird nicht erstellt. Sehe aber keine Fehlermeldung
Poste bitte mal das genaue Datum das angezeigt wird.
Ichbaue am Ende auch die Pause nochmal ein. (Wenn alles klappt kann man die auskommentieren mit zwei Doppelpunkten davor oder eicfach löschen.
Guß
LotPings
Zitat von @Bacaaardi:
Der Befehl "MD"J:\xmltool\Testergebnisse\2009-05-29_12-33-48,38\""
Wenn die Sekunden das Problem sind reicht dann aich HH:MM
Wenn es dadurch einfacher ist
Der Befehl "MD"J:\xmltool\Testergebnisse\2009-05-29_12-33-48,38\""
Wenn die Sekunden das Problem sind reicht dann aich HH:MM
Wenn es dadurch einfacher ist
Es sind die Sekundenbruchteile, heute ist Freitag.......
ändere es wieder oben.
Gruß
LotPings
Zitat von @Bacaaardi:
Der Befehl "MD"J:\xmltool\Testergebnisse\2009-05-29_14-01-22\"" ist entweder falsch geschrieben oder
Da fehlte ein Leerzeichen hinter MD.Der Befehl "MD"J:\xmltool\Testergebnisse\2009-05-29_14-01-22\"" ist entweder falsch geschrieben oder
Gruß
LotPings
Na prima,
und wenn du den Beitrag jetzt auch auf erledigt setzt, sind wir alle Glücklich.
Gruß
LotPings
und wenn du den Beitrag jetzt auch auf erledigt setzt, sind wir alle Glücklich.
Gruß
LotPings