Jump to content

Proll012

Members
  • Gesamte Inhalte

    29
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Proll012

  1. Guten Morgen, bin ein bisschen weiter, trotzdem tut das Programm noch nicht so richtig. es wird eine leere Ausgabedatei erzeugt aber es gibt keine Änderungen am Original. Nochmal zum Ziel: Das Programm soll in einer xml Datei nach <FVALUE> suchen und den Inhalt z.B:<FVALUE>XYZ; 52; green</FVALUE>, beim Semikolon trennen. Dann sollen die Schnipsel in neuen Zeilen wieder in <FVALUE> verpackt werden. <FV>XYZ</FV> <FV>52</FV> <FV>green</FV> @echo off chcp 65001 >nul set "XMLFile=DE_nv2045" set "outFile=new.%XMLFile%" (call ) >"%outFile%" for "tokens=1* delims=]" %%a in ('type "%XMLFile%"^|find /v /n ""') do ( echo %%b|find /i "<FVALUE>" && ( for /f "tokens=1* delims=;" %%f in ("%%b") do ( >>"%outFile%" echo %%f^</FVALUE^> >>"%outFile%" echo ^<FVALUE^>%%g ) ) || ( >>"%outFile%" echo:%%b ) )
  2. Ja hast du wohl recht, bin Azubi. Ich hab im netzt paar "Vorlagen" gefunden und versuch mich darüber an meine Problemlösung zu wurschteln. Jemanden dafür zu bezahlen kommt eher nicht infrage # Ausgangspfad der Datei-Suche $quellpfad = "X:\Experiment,Test" # Alle Dateien mit der Endung *.xml Rekursiv in ein Array schreiben $allexml = Get-ChildItem $quellpfad "*.xml" -Recurse # Array für Standorte Anlegen $FVALUE = @() # Alle Standorte aller XML-Elemente in das Array $Standorte schreiben foreach ($xmlobjekt in $allexml) { # Holen des Inhalts der XML Datei [xml]$xml = Get-Content $xmlobjekt.FullName # Abrufen der Standortinformationen aus den Server-Elementen und an Array anhängen $FVALUE += (Select-Xml -Xml $xml -XPath '//Server').Node.Informationen.FVALUE } # Ausgabe des Arrays Gruppiert nach den Werten $FVALUE.GetEnumerator() | Group-Object # Inhalte der XML-Elemente mit XPath suchen und ersetzen foreach ($xmlobjekt in $allexml) { # Inhalt der XML-Date in $xml laden [xml]$xml = Get-Content $xmlobjekt.FullName # Für jedes Element in der XML Datei unter 'Server' durchlaufen foreach ($server in (Select-Xml -Xml $xml -XPath '//Server')) { # Falls in FVALUE ein ; ist if ($server.Node.Informationen.FVALUE -like "*;*") { # FVALUE neu setzten auf Inhalt vor ; $server.Node.Informationen.FVALUE = "*" } # Speichern der XML Datei am ursprünglichen Ort $xml.Save($xmlobjekt.FullName) } } # Direkt Dateien nach Text durchsuchen und ersetzen foreach ($datei in $allexml) { # Kompletten Inhalt der Datei in Variabel laden $text = Get-Content $datei.FullName # Variabel neu schreiben und Freiburg durch Hamburg ersetzen $text = $text.Replace("*;*","*") # Schreiben des Inhaltes von $Text in die ursprüngliche Datei Set-Content $datei.FullName $text } versuche gerade hierrüber annähernd irgendwas Funktionierendes hinzubekommen. Ursprünglich ging es in dem Script um Standortveränderung.
  3. Also danke erstmal, die Frage ist, wie ich es schaffe automatisch, xml daten in einem Ordner, nach einer Bestimmten Zeile zu durchsuchen und diese Unabhängig vom Geschriebenen Inhalt beim Semikolon in Zwei Zeilen aufteile. Beispiel <Anfang> XYZ; 22 </ende> Bearbeitet soll es so sein : <Anfang> XYZ</ende> <Anfang> 22</ende>
  4. Hallo, ich habe einen Ordner voller Xml Dateien. in einigen dieser Dateien befindet sich folgendes Problem: Zeile X: <Anfang> XYZ; 22 </ende> diese Zeile soll bei dem Semikolon in 2 Zeilen aufgeteilt werden. Jetzt möchte ich das so machen, das ich eine Batch Datei habe, welche die XML Dateien im Ordner durchgeht und diese Zeilen immer in 2 aufteilt. Das Semikolon ist dann natürlich nicht mehr gebraucht. Liebe Grüße und danke im Voraus
×
×
  • Neu erstellen...