Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

xml per batch automatisch absenden?

Frage Entwicklung Batch & Shell

Mitglied: Bacaaardi

Bacaaardi (Level 1) - Jetzt verbinden

28.05.2009, aktualisiert 13:55 Uhr, 4960 Aufrufe, 17 Kommentare

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:

01.
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???
Mitglied: LotPings
28.05.2009 um 14:52 Uhr
Zitat von Bacaaardi:
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.
01.
for /f "delims=" %A in ('dir /B/S allexm\*.xml^|findstr /V /I "out.xml$"' ') Do @echo java – jar xmltool.jar testmaschine002  %~fA
Wenn die Ausgabe korrekt erscheint, das Echo hinter dem Do entfernen.
In einer Batchdatei sind die %-Zeichen zu verdoppeln (ungetestet)

Gruß
LotPings
Bitte warten ..
Mitglied: Bacaaardi
28.05.2009 um 14:58 Uhr
Hi,

habe eine start.bat erstellt und deinen Quellcode eingefügt.
Leider passiert nichts. Die DOS-Box öffnet sich für paar ms und ist dann weg.

Sorry wegen den fehlenden Kommas.

Gruß

Bacaaardi
Bitte warten ..
Mitglied: LotPings
28.05.2009 um 15:09 Uhr
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.

01.
@echo off&Setlocal 
02.
Set "DatumZeit=%date:~-4%-%date:~-7,2%-%date:~-10,2%_%time:~0,8%" 
03.
Set "DatumZeit=%DatumZeit::=-%" 
04.
echo Wenn DatumZeit=%DatumZeit% nicht ok Strg-C zum Abbrechen, sonst 
05.
Pause 
06.
Echo ====== %DatumZeit% ====== >>"%~dpn0.Log" 
07.
pushd J:\Tool\Test\xmltool  
08.
for /f "delims=" %%A in (' 
09.
  dir /B/S allexml\*.xml^|findstr /V /I "out.xml$" ' 
10.
) Do ( 
11.
  java -jar xmltool.jar testumgebung002  "%%~fA" 
12.
  echo "%%~fA" bearbeitet >>"%~dpn0.Log" 
13.
14.
Set "ArchivDZ=J:\xmltool\Testergebnisse\%DatumZeit%\" 
15.
if Not exist "%ArchivDZ%" MD "%ArchivDZ%" 
16.
Move "allexml\*out.xml" "%ArchivDZ%" 
17.
Pause 
18.
Popd
Gruß
LotPings

Edit: Log eingebaut
Edit2: Umfangreiche Änderungen
Edit3: Pfad geändert
Edit4: MS entfernt
Bitte warten ..
Mitglied: Bacaaardi
29.05.2009 um 08:27 Uhr
Hi Lotpings,

ich habe im Ordner J:\Tool\Test\xmltool eine start.bat mit deinem Code eingefügt.

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.

Eine Idee???
Bitte warten ..
Mitglied: LotPings
29.05.2009 um 09:34 Uhr
Zitat von Bacaaardi:

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,
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.
Und zwar nur das Wort Echo

Gruß
LotPings
Bitte warten ..
Mitglied: Bacaaardi
29.05.2009 um 10:16 Uhr
Hi LotPings

Habe nur das Wort Echo gelöscht. Das @ nach dem DO hab ich stehen gelassen.
Siehe da es geht. Allerdings schickt er mir nicht alle Dateien aus dem Ordner.
Von 75 xml wurden nur 17 abgeschickt. Ist da eine Begrenzung drin?

Sorry wenn ich so anfängerhaft frage. Bin leider kein Batch-Profi

Danke aber für deine Mühe.

Was mir aufgefallen ist: Die xml die abgeschickt werden haben eine Nummer.
z.B.:

109.request.xml
110.request.xml
1010.request.xml
1022.request.xml

usw.

Mit deinem Batch wurden alle xml die mit einer 1 beginnen verarbeitet. Die übrigen nicht.
z.B.
808.request.xml
200.request.xml


usw
Bitte warten ..
Mitglied: LotPings
29.05.2009 um 10:51 Uhr
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
Bitte warten ..
Mitglied: Bacaaardi
29.05.2009 um 11:05 Uhr
Also so hat es jetzt doch geklappt:

01.
@echo off 
02.
pushd J:\Tool\Test\xmltool  
03.
for /f "delims=" %%A in ('dir /B/S allexml\*.xml^|findstr /V /I "out.xml$"' ') Do @ java -jar xmltool.jar testumgebung002  %%~fA 
04.
Pause 
05.
Popd
Hat also prima geklappt vielen Dank an alle. Habt mir echt weitergeholfen.

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.

Pfad für die Archivierung:
J:\xmltool\Testergebnisse.

Beipsiel dann:

J:\xmltool\Testergebnisse\2009-05-29 11:05:12
Bitte warten ..
Mitglied: LotPings
29.05.2009 um 11:39 Uhr
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.

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
Das ist die am häufigsten gestellte Frage und es gibt hunderte von Beispielen dafür.
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
Bitte warten ..
Mitglied: Bacaaardi
29.05.2009 um 11:57 Uhr
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

Gruß
Bitte warten ..
Mitglied: LotPings
29.05.2009 um 12:12 Uhr
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.
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
Bitte warten ..
Mitglied: Bacaaardi
29.05.2009 um 12:35 Uhr
Der Befehl "MD"J:\xmltool\Testergebnisse\2009-05-29_
12-33-48,38\"" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Mehrere Dateien können nicht in eine einzelne Datei verschoben werden.
Drücken Sie eine beliebige Taste . . .


Wenn die Sekunden das Problem sind reicht dann aich HH:MM
Wenn es dadurch einfacher ist
Bitte warten ..
Mitglied: LotPings
29.05.2009 um 13:51 Uhr
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

Es sind die Sekundenbruchteile, heute ist Freitag.......
ändere es wieder oben.

Gruß
LotPings
Bitte warten ..
Mitglied: Bacaaardi
29.05.2009 um 14:03 Uhr
Sorry gleiche Fehlermeldung :

<!-- done processing all request -->
Der Befehl "MD"J:\xmltool\Testergebnisse\2009-05-29_
14-01-22\"" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Das System kann die angegebene Datei nicht finden.
Drücken Sie eine beliebige Taste . . .


Hmmm
Bitte warten ..
Mitglied: LotPings
29.05.2009 um 14:42 Uhr
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.

Gruß
LotPings
Bitte warten ..
Mitglied: Bacaaardi
29.05.2009 um 15:09 Uhr
Einfach genail
Du bist ein Genie ;)
Vielen Dank!!!!!!!!!!!
Bitte warten ..
Mitglied: LotPings
29.05.2009 um 16:07 Uhr
Na prima,
und wenn du den Beitrag jetzt auch auf erledigt setzt, sind wir alle Glücklich.

Gruß
LotPings
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch: .rar-Pakete automatisch Ordner erstellen und verschieben (2)

Frage von BowserMD zum Thema Batch & Shell ...

Windows 10
gelöst PCs über eine Batch Datei nach 2 Tagen Laufzeit automatisch herunterfahren (12)

Frage von Karsten70154 zum Thema Windows 10 ...

Batch & Shell
gelöst BATCH Element aus XML-File auslesen (9)

Frage von pappkamerad zum Thema Batch & Shell ...

IDE & Editoren
USB STICK Datei AUTOMATISCH beim anschliessen auf fremden PC öffnen (9)

Frage von Jwanner83 zum Thema IDE & Editoren ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...