Batch Variable an ein XML-Dokument weitergeben und diese dort eintragen.
Guten Tag,
ich bin neu in dem Bereich der Batch Programmierung und habe mir einige Beiträge in diesem Forum angesehen die in die Richtung meines Problems gehen, allerdings leider nicht ganz das treffen was ich suche.
Und zwar soll in einem Batch Script eine Variable abgefragt werden und anschließend in einem XML Formular in eine bestimmte Zeile gesetzt werden.
Ich habe mir mal einige Batch Scripte hier zum Vorbild genommen und versucht ein bisschen zu basteln, leider verstehe ich noch nicht wirklich viel.
Die Zeile sieht vor der Abfrage so aus <Key Value= /> und soll nach der Abfrage dann in etwa so aussehen <Key Value="123" /> bei einer eingabe von 123 als Variable Key.
ich bin neu in dem Bereich der Batch Programmierung und habe mir einige Beiträge in diesem Forum angesehen die in die Richtung meines Problems gehen, allerdings leider nicht ganz das treffen was ich suche.
Und zwar soll in einem Batch Script eine Variable abgefragt werden und anschließend in einem XML Formular in eine bestimmte Zeile gesetzt werden.
Ich habe mir mal einige Batch Scripte hier zum Vorbild genommen und versucht ein bisschen zu basteln, leider verstehe ich noch nicht wirklich viel.
Die Zeile sieht vor der Abfrage so aus <Key Value= /> und soll nach der Abfrage dann in etwa so aussehen <Key Value="123" /> bei einer eingabe von 123 als Variable Key.
set /p key=
@echo on & Setlocal
:: Defintition
set Datei=C:\lulu.xml
set Neudatei=C:\lala.xml
set "NeueZeile=<Key Value="%key%" />"
:: Jede Zeile der Datei auslesen und an u_Prog. übergeben
for /f "delims=" %%i in (%Datei%) do set "Zeile=%%i" & call :processline
:: Originaldatei wieder herstellen
move %Neudatei% %Datei%
pause
goto :eof
:processline
::Sonderzeichen maskieren
set "Zeile=%Zeile:<=<Key"
set "Zeile=%Zeile:>=/>"
:: Nach String suchen
echo "%Zeile%"|find "false">nul && (>>%Neudatei% echo %NeueZeile%) || (>>%Neudatei% echo %Zeile%)
pause
goto :eof
Please also mark the comments that contributed to the solution of the article
Content-Key: 168776
Url: https://administrator.de/contentid/168776
Printed on: April 19, 2024 at 10:04 o'clock
7 Comments
Latest comment
ich hätte etwas in VBS für dich:
Vielleicht am Thema vorbeigeantwortet, aber eventuell hilft es dir.
Gruss
Tsuki
Ein = "C:\lulu.xml "
Aus = "C:\lala.xml"
Frage = Inputbox("Bitte KEY eingeben!",,"123")
Von = "<Key Value= />"
Nach = "<Key Value=" & chr(34) & Frage & chr(34) & " />"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile(Aus).Write Replace(fso.OpenTextFile(Ein).ReadAll, Von, Nach)
Vielleicht am Thema vorbeigeantwortet, aber eventuell hilft es dir.
Gruss
Tsuki
Hi Roxx,
ich gebe ja nicht auf mit VBS (wegen etwaigier Leer- oder Sonderzeichen)
Wir können ja tricksen und erstellen und rufen eine VBS mittels Batch auf
Damit kannst du bei Batch bleiben
Gruss
Tsuki
ich gebe ja nicht auf mit VBS (wegen etwaigier Leer- oder Sonderzeichen)
Wir können ja tricksen und erstellen und rufen eine VBS mittels Batch auf
@ECHO OFF &SETLOCAL
:: vbs erzeugen:
>"%temp%\XML.vbs" ECHO Ein = "C:\lulu.xml"
>>"%temp%\XML.vbs" ECHO Aus = "C:\lala.xml"
>>"%temp%\XML.vbs" ECHO Frage = "123" 'Inputbox("Bitte KEY eingeben!",,"123")
>>"%temp%\XML.vbs" ECHO Von = "<Key Value= />"
>>"%temp%\XML.vbs" ECHO Nach = "<Key Value=" & chr(34) & Frage & chr(34) & " />"
>>"%temp%\XML.vbs" ECHO Set fso = CreateObject("Scripting.FileSystemObject")
>>"%temp%\XML.vbs" ECHO fso.CreateTextFile(Aus).Write Replace(fso.OpenTextFile(Ein).ReadAll, Von, Nach)
:: vbs aufrufen:
CALL "%temp%\XML.vbs"
:: vbs löschen:
DEL "%temp%\XML.vbs"
Gruss
Tsuki
Hallo Roxx123,
joh, 'tschuldigung! Da pfeiff (pipe) ich mir Einen
Das Problem ist natürlich das & im Echo. Das muss - weil Befehlszeichen! - ausgepipet werden.
Schönes Deutsch
Mache es so:
Gruss
Tsuki
joh, 'tschuldigung! Da pfeiff (pipe) ich mir Einen
Das Problem ist natürlich das & im Echo. Das muss - weil Befehlszeichen! - ausgepipet werden.
Schönes Deutsch
Mache es so:
@ECHO OFF & SetLocal EnableDelayedExpansion
:: vbs erzeugen:
>%temp%\XML.vbs ECHO Ein = "C:\lulu.xml"
>>%temp%\XML.vbs ECHO Aus = "C:\lala.xml"
>>%temp%\XML.vbs ECHO Frage = "123"
>>%temp%\XML.vbs ECHO Von = "<Key Value= />"
>>%temp%\XML.vbs ECHO Nach = "<Key Value=" ^& chr(34) ^& Frage ^& chr(34) ^& " />"
>>%temp%\XML.vbs ECHO Set fso = CreateObject("Scripting.FileSystemObject")
>>%temp%\XML.vbs ECHO fso.CreateTextFile(Aus).Write Replace(fso.OpenTextFile(Ein).ReadAll, Von, Nach)
:: vbs aufrufen:
CALL %temp%\XML.vbs
:: vbs löschen:
DEL %temp%\XML.vbs
Gruss
Tsuki