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

Per Batch bestimmtes Wert aus einer Textdatei suchen und bearbeiten

Frage Entwicklung Batch & Shell

Mitglied: MysteryMan

MysteryMan (Level 1) - Jetzt verbinden

30.06.2008, aktualisiert 01.07.2008, 7488 Aufrufe, 5 Kommentare

Guten Tag,

ich habe schon die Suche gefunden bezüglich meines Themas, aber nicht das richtige gefunden.

Mein Problem ist, das ich aus einer xml-Datei ein bestimmtes Wort ersetzen möchte. Die xml-Datei sieht ungefähr so aus.

Text
MysteryMan,Testuser

<Username>MysteryMan</Username)
NochMehr Text

Ich möchte nun den Usernamen zwischen den Befehl <Username> durch den testuser ersetzen oder anders Herum. Da ich öfters den Username Bearbeiten muss, möchte ich dieses gerne mit einem Script oder einer Batch Datei Lösen.

Das Problem die beiden Usernamen MysteryMan und Testuser müssen im Oberen teil stehen bleibenDas heißt das Script muss erst in die Zeile Springen mit dem befehl <Username> und da den User ersetzen.

Ich weiß den Befehl username gibs nicht, aber er dient hier nur zur Verdeutlichung.

Vielen Dank schonmal im Voraus

MysteryMan

Wenn weiter Fragen sind, werde ich sie versuchen zu beantworten.

P.S.: ich kenne mich nicht sogut mit Scripten aus
Mitglied: Crusher79
30.06.2008 um 10:37 Uhr
Hi,

würd mit regulären Ausdrücken arbeiten. "sed" ist unter Linux schon lange ein Begriff. Editiert Texte, arbeitet mit Regular Expressions.

Gibs auch für Windows: http://gnuwin32.sourceforge.net/packages/sed.htm


Kannst ja mal nach "sed" Syntax googlen. So kannst du auch per Batch die Dateien ändern.

Wenn du nicht Skripte willst, kannst auch mit einen guten Editor, z.B. PsPad, die Dateien ändern.

Mit Regulären Ausdrücken kannst du ganz gezielt nach Begriffen die z.B. in <> stehen suchen. Ist aber eine Wissenschaft für sich. Schau dir am besten mal eine paar Beispiele dazu an.


Mal ein Beispiel:
Suchen nach: >.*<
Ersetzen mit: >Testuser<

Würde alle zeichen die zwischen den Klammen sind ersetzen. Der "." stellt ein Zeichen dar, "*" ist ein die Anzahl der aufeinanderfolgendne zeichen. * ist in dem Fall unendlich.

Mit freundlichen Grüßen Crusher
Bitte warten ..
Mitglied: bastla
30.06.2008 um 10:51 Uhr
Hallo MysteryMan!

Um den Ablauf nochmals zu klären:
In der xml-Datei steht (fest eingetragen) das Begriffspaar
01.
MysteryMan,Testuser
in einer Zeile. Einer der beiden Begriffe scheint in der Zeile
01.
<Username>MysteryMan</Username>
auf und soll durch den jeweils anderen ersetzt werden.

Muss die erstgenannte Zeile aufgrund des aktuell vorhandenen "Username" (im Beispiel "MysteryMan") erst gesucht werden?

Und: Wozu soll der ganze Vorgang dienen - wäre es ev eine Option, zwei (bis auf den Usernamen identische) xml-Dateien (als Vorlagen) zu erstellen und die jeweils benötigte durch Kopieren zu "aktivieren" (also zB Vorlagen: "UsersMyst.tmpl", "UsersTest.tmpl"; kopieren nach "Users.xml")?

Grüße
bastla
Bitte warten ..
Mitglied: MysteryMan
30.06.2008 um 11:03 Uhr
hallo bastla,

genau deine Reihenfolge ist richtig.

an so einer einfachen Lösung mit 2 Dateien habe ich garnicht gedacht. Warum es einfach machen, wenn es auch irgendwie kompliziert geht^^.

Der Vorgang dient dazu, das ich mehrmals täglich die xml- bearbeiten muss und man sich ja dieses eigentlich vereinfachen kann.

Hier benötigt man ja nur zwei Batch-Dateien mit einem einfachen Copy befehl oder könnte man dieses auch mit einer realisieren?

Dieses dient nicht zum Spielen, sondern für die Arbeit.

Die beiden Usernamen sind FEST, diese ändern sich nie.

Vielen dank schonmal für die rasche hilfe =)
Bitte warten ..
Mitglied: bastla
30.06.2008 um 11:39 Uhr
Hallo MyteryMan!

Die Variante "Umschalten" ließe sich so realisieren:
01.
@echo off & setlocal 
02.
set "Profil=D:\Users.xml" 
03.
set "Profil1=D:\UsersMyst.tmpl" 
04.
set "Profil2=D:\UsersTest.tmpl" 
05.
 
06.
fc /b "%Profil%" "%Profil1%">nul 
07.
if errorlevel 1 ( 
08.
    echo Aktiviere Profil "MysteryMan" 
09.
    copy "%Profil1%" "%Profil%">nul 
10.
) else ( 
11.
    echo Aktiviere Profil "Test" 
12.
    copy "%Profil2%" "%Profil%">nul 
13.
14.
pause
Voraussetzung für das Funktionieren ist, dass die xml-Datei nicht zusätzlich verändert wird, da für die Auswahl des Profils mit "fc" ein Dateivergleich vorgenommen wird.

Grüße
bastla

P.S.: Ich habe übrigens nichts gegen "spielen" ...
Bitte warten ..
Mitglied: MysteryMan
01.07.2008 um 08:32 Uhr
Guten Morgen,

ich habe nun soweit dein Script angepasst, also richtigen Pfad eingegeben.

Ich habe die die 2 tmpl Dateien erstellt, immer mit dem einen anderen Usernamen.

In der Konsole zeigt er immer an, Aktiviertere Profil "Test", aber schreibt es nicht in die Datei. Die Dateien, bleiben sonst immer gleich, es wird nur der eine Wert geändert.
Ich denke das Problem ist, das er noch beim ersten Usernamen Guckt und dann es verändert. Also immer nur MysteryMan anguckt.

Die Dateien befinden sich alle in einem Ordner, die Batch-Datei auch
Ich auch nicht ;), da ich selber spiele.

Ich nehme alles Zurück. Mein Plöder Fehler... habe die 2 Datei nicht richtig angepasst. Es Funktioniert jetzt. Vielen vielen Danke für deine Hilfreiche unterstüzung.

Könnte ich dir Blumen geben, würde ich es tuhen ;)
Mit freundlichen Grüßen
MysteryMan
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Konfliktdateien in Dropbox suchen (4)

Frage von nobbi49 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Öffnen einer Textdatei nach Systemneustart (17)

Frage von sascha382 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...