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 BATCH: For-Schleife mit type und find laufbar machen

Mitglied: Kartoffelpelle

Kartoffelpelle (Level 1) - Jetzt verbinden

03.04.2019, aktualisiert 13:14 Uhr, 322 Aufrufe, 6 Kommentare

Guten Tag,

ich habe folgendes Problem. Ich habe eine XML-Datei, die etwa wie folgt aussieht:
<?xml version="1.0" encoding="utf-8"?>
<preset>
  <Address>
    <txtNumber>123</txtNumber>
  </Address>
</preset>
Ich möchte gern den Wert zwischen <txtNumber> und </txtNumber> in eine Variable schreiben


Ich scheitere leider bereits daran, die komplette Zeile in eine Variable zu schreiben (der Plan ist, den Rest dann links und rechts weg zu schneiden).

Ich habe bereits einiges getestet. Leider habe ich es bisher besten Falls geschafft, den Text "type" in die Variable Last zu schreiben.

Anbei ein entsprechender Versuch:
set HomeDir=C:\Test
for /f %%i in ('type %HomeDir%\Settings.xml ^| find /i "<txtNumber>"') do set Last=%%i
echo %last%
Ich schaffe es einfach nicht, die Befehle zwischen den Klammern korrekt zu escapen. Habt ihr eventuell eine Idee?

Vielen Dank!

Mit freundlichen Grüße
Kartoffelpelle
Mitglied: TripleDouble
LÖSUNG 03.04.2019 um 14:43 Uhr
Hallo,

versuch für den Anfang mal:

set HomeDir=C:\Test
for /f %%i in ('type %HomeDir%\Settings.xml ^| find /i "<txtNumber>"') do set "Last=%%i"
echo "%last%"
Dann hast Du schonmal die Zeile in der Variablen und kannst Dich dann um den Wert kümmern.

Gruß - TD
Bitte warten ..
Mitglied: rubberman
LÖSUNG 03.04.2019 um 15:43 Uhr
Überleg mal wie die ECHO Zeile aussieht, wenn du die Variable auflöst und welche Bedeutung < und > dann bekommen. Passe doch deine FOR /F Schleife so an, dass du von vorn herein nur den Wert in der Variablen hast.
for /f "tokens=3 delims=<>" %%i in ('type "%HomeDir%\Settings.xml" ^| find /i "<txtNumber>"') do set "Last=%%i"
Dass man XML nur über das DOM vernünftig verarbeiten kann (in Batch nicht verfügbar), sollte dir aber bewusst sein. Wenn das komplette XML nur aus einer Zeile bestehen würde oder ohne jeglichen Zeileneinzug vorgegeben wäre, dann ist das immer noch genauso valide. Bloß für dich nicht mehr verarbeitbar.

Steffen
Bitte warten ..
Mitglied: erikro
03.04.2019 um 16:30 Uhr
Moin,

ich empfehle Dir dringend, bei dem Problem die Powershell zu benutzen, mit der Du relativ leicht auf eine XML-Struktur zugreifen kannst.
https://www.langlitz-it.de/?p=1297
https://www.ip-insider.de/xml-bearbeitung-mit-der-powershell-a-66086/
https://www.heise.de/ix/artikel/Datenzugriff-506816.html?artikelseite=&a ...

hth

Erik
Bitte warten ..
Mitglied: Kartoffelpelle
04.04.2019 um 08:42 Uhr
Hallo eriko,

vielen Dank für die schnelle Hilfestellung! Powershell ist aber leider keine Option, das hätte ich eingangs vielleicht etwas besser verdeutlichen sollen. Ich versuche beim nächsten Mal daran zu denken. Mir ist aber bewusst, dass es damit oder mit einem Parser einfacher umsetzbar wäre.

Viele Grüße
Kartoffelpelle
Bitte warten ..
Mitglied: Kartoffelpelle
04.04.2019 um 08:53 Uhr
Hallo TripleDouble,

vielen Dank. Ich wäre vermutlich nie darauf gekommen, dass ich die Variable hinter dem Echo in Anführungszeichen setzen muss. Ich war mir totsicher, dass der Fehler in der For-Schleife liegt. Jetzt wo ich es sehe ist es natürlich klar. Manchmal hat man eben Scheuklappen vor den Augen.

Viele Grüße
Kartoffelpelle
Bitte warten ..
Mitglied: Kartoffelpelle
04.04.2019 um 09:19 Uhr
Hallo rubberman,

deine Variante ist klasse und genau, dass was ich brauche! Wieder einmal vielen Dank!

Ich wäre vermutlich nie darauf gekommen, dass "Echo" in das Problem verursacht. Ich war mir totsicher, dass der Fehler in der For-Schleife liegt. Jetzt wo ich es sehe ist es natürlich klar. Manchmal hat man eben Scheuklappen vor den Augen.

Ich war fast schon so weit, die dilettantische Anfänger-Variante zu nehmen... "die Zeile in eine temporäre Text-Datei zu schreiben und von da in eine Variable einzulesen."

Ursprünglich war es auch mein Plan, die Forschleife entsprechend deiner Variante zu modifizieren. Irgendwann war ich jedoch so verzweifelt, dass ich überhaupt irgendetwas aus der Schleife zurückgemeldet bekommen wollte. Da war es mir auch Recht, den Text in der Variablen zu modifizieren.

Viele Grüße
Kartoffelpelle
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Nonsense Error - find ihn nicht. (Batch)
gelöst Frage von clragonBatch & Shell7 Kommentare

Hey Leute! Ich bin's wieder. Heute habe ich ein besonders unnötiges Problem,. Aus irgendeinem Grund hat dieses Script einen ...

Batch & Shell
FOR Loop Variablen ( Batch )
gelöst Frage von clragonBatch & Shell2 Kommentare

Hey Leute. Ich schreib grad an einem script rum und hab folgendes Problem: Die Variable eines FOR loop meines ...

Batch & Shell

(Batch): "Find" Befehl nach aktuellem Datum filtern

gelöst Frage von unauthorized-userBatch & Shell3 Kommentare

Guten Morgen an alle, für die Dokumentation der Server-Updates habe ich eine winzige *.Bat-Datei geschrieben, welche mir alle installierten ...

Benchmarks

Hypervisor - Typ-2 schneller als Typ-1

Frage von 134408Benchmarks3 Kommentare

Hallo, wir haben hier in unserem Testlabor derzeit viele Desktop- und Serversysteme herumstehen, alle verschiedene Hardware sowie Hersteller. Wir ...

Neue Wissensbeiträge
Internet

Internet-Speedtest Automatisieren via Befehlszeile, cmd, Bash (Windows, Linux, FreeBSD, Mac)

Tipp von anteNope vor 13 StundenInternet3 Kommentare

Also das hier ist irgendwie an mir vorbeigegangen. Einfacher geht es schlicht nicht mehr. Speedtest.cmd Via Aufgabenplanung stündlich oder ...

Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 1 TagAdministrator.de Feedback4 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. Die Codeblöcke können nun direkt per Copy&Paste kopiert werden. ...

Humor (lol)
Internet - auch 2020 noch Neuland ?
Erfahrungsbericht von Henere vor 1 TagHumor (lol)2 Kommentare

Heute eine Mail der Schule meiner Tochter bekommen. Blabla Umweltschutz bla bla siehe Anhang. Dumm nur: Da hab ich ...

Sicherheit
Diverse Sicherheitsprobleme aus dem Hause Intel
Tipp von DerWoWusste vor 2 TagenSicherheit

Unter anderem muss man mal wieder die Treiber für Intel HD Graphics updaten

Heiß diskutierte Inhalte
Netzwerkmanagement
Werde dauernd aus dem WLAN geworfen (RouterOS)
gelöst Frage von amdkeksNetzwerkmanagement19 Kommentare

Hallo Zusammen, ich habe gestern ein update meiner Mikrotikgeräte gemacht und habe nun überall Version 6.45.5 drauf. Mikrotik Routerboard, ...

Festplatten, SSD, Raid
Größe der Partition lässt sich nicht ändern mit gparted
Frage von achkleinFestplatten, SSD, Raid17 Kommentare

Hallo, ich habe eine 480GB auf eine 1TB-SSD geklont. Jetzt möchte ich den freien Speicherplatz per gparted an die ...

Windows Installation
Installation und Admin-Rechte
Frage von UserUWWindows Installation16 Kommentare

Annahme: UAC ist aktiv, der User ist "normaler" Benutzer. Eine Installation via setup.exe kann man in der Regel auf ...

Sicherheit
Wie Kann Man eine IT-Notfallhandbuch erstellen für petasan
Frage von 142658Sicherheit14 Kommentare

Hallo Leute ich muss bald meine abschlussprojekt schreiben und brauch dringend hilfe wie man ein IT-Notfallhandbuch erstellen für Petasan(eine ...