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 - Strings ersetzen (mit Sonderzeichen)

Mitglied: kali64

kali64 (Level 1) - Jetzt verbinden

13.08.2010, aktualisiert 15:00 Uhr, 14354 Aufrufe, 13 Kommentare

Batch - Strings ersetzen (mit Sonderzeichen)

Hallo allerseits,

ich möchte per batch eine config-datei öffnen, Strings suchen und an diese dann Werte anhängen.
Das batch läuft auch, nur leider gibt es Probleme mit den Sonderzeichen, die ich einfach nicht bewerkstelligt bekomme.

Hier mein Quelltext:

01.
@echo off & setlocal enabledelayedexpansion  
02.
set "Datei=para.txt"  
03.
set "zuersetzen=printer_name" 
04.
set "ersetzenmit=printer_name = 9966558" 
05.
set "t=%temp%\text.tmp"  
06.
if exist "%t%" del "%t%"  
07.
for /f "usebackq delims=" %%i in ("%Datei%") do set "Line=%%i" & set Line=!Line:%zuersetzen%=%ersetzenmit%! & echo !Line! >> "%t%"  
08.
move /y "%t%" "%Datei%"



para.txt:

01.
printer_name = 
Klappt alles wunderbar, nur, dass im Anschluss "printer_name = 9966558=" und nicht "printer_name = 9966558" in der Datei "para.txt" steht.

Wenn ich set "zuersetzen=printer_name = " eingebe, gibt er mir sogar "=printer_name = 9966558=" aus.

Hat zufällig jemand eine Idee?

Vielen Dank schonmal im Vorraus für eure Bemühungen
Mitglied: pieh-ejdsch
13.08.2010 um 15:08 Uhr
moin Kali64,

Du erstzt ja auch (nur) den teil "printer_name" mit "printer_name = 9966558"

da ist ja klar das aus "printer_name =" das " =" dahinter noch übrigbleibt.

demo am Promt:
set a=abc = 
set a=%a:abc=% 
echo %a% 
Ausgabe: 
 =

Gruß Phil
Bitte warten ..
Mitglied: kali64
13.08.2010 um 15:23 Uhr
Hi Phil,

ja, das ist mir bewusst. Das Problem ist nur, dass wenn ich set "zuersetzen=printer_name = " schreibe, dann gibt er mir komischerweise
"=printer_name = 9966558=" in meinem File aus.

Grüße kali
Bitte warten ..
Mitglied: 60730
13.08.2010 um 15:35 Uhr
moin

Zeile 4
set "ersetzenmit=printer_name ^= 9966558"

Dann klappert das auch - obwohl ohne echo off.....

Gruß
Bitte warten ..
Mitglied: bastla
13.08.2010 um 15:41 Uhr
Hallo kali64 und willkommen im Forum!

Versuch es so:
01.
@echo off & setlocal 
02.
set "Datei=para.txt"  
03.
set "zuersetzen=printer_name =" 
04.
set "ersetzenmit=printer_name ^= 9966558" 
05.
set "t=%temp%\text.tmp"  
06.
del "%t%" 2>nul 
07.
for /f "usebackq delims=" %%i in ("%Datei%") do (echo %%i|findstr /b /c:"%zuersetzen%">nul && echo %ersetzenmit%||echo %%i)>>"%t%" 
08.
move "%t%" "%Datei%"
[Edit] Zeile 7 noch etwas "behübscht" [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
13.08.2010 um 15:53 Uhr
müsste dann die Maskierung nicht in
die Variable zuersetzen
weil das erste unmaskierte = wird doch für die Zuweisung genommen

Gruß Phil
Bitte warten ..
Mitglied: bastla
13.08.2010 um 15:55 Uhr
@PH
müsste dann die Maskierung nicht in
die Variable zuersetzen
... auch nicht - dann wird der String gar nicht erst gefunden ...

Grüße
bastla
Bitte warten ..
Mitglied: kali64
13.08.2010 um 16:00 Uhr
Hi TimoBeil,

das habe ich auch schon versucht, kommt leider auch wieder "=tp5_printer_name = 9966558= " raus.

Trotzden danke für die schnelle Hilfe
Bitte warten ..
Mitglied: pieh-ejdsch
13.08.2010 um 16:06 Uhr
also ich habs grad probiert

man kann also das = aus einer Variable nicht mit Set ersetze(String=)mit(String-Irgendwas) herauslösen

naja wieder was gelernt
Gruß Phil
Bitte warten ..
Mitglied: kali64
13.08.2010 um 16:09 Uhr
Hi bastla,

bei mir ändert sich nichts in der para.txt, es wird nur eine Datei "nulfor" angelegt ohne Inhalt.

Grüße
kali
Bitte warten ..
Mitglied: bastla
13.08.2010 um 16:16 Uhr
Hallo kali64!

Ich habe mit
01.
printer 
02.
printer_name = 
03.
printer_location =
als "para.txt" und der oben stehenden (wieder heruntergeladenen) Batch-Version folgendes Ergebnis erhalten:
01.
printer 
02.
printer_name = 9966558 
03.
printer_location =
Auch wenn ich das (ohnehin unnötige) "^" in Zeile 4 entferne, funktioniert es weiterhin ...

Wenn Du Timos anderen Tipp (das Vermeiden von "echo off") umsetzt, solltest Du dem Fehler leichter auf die Spur kommen ...
[Edit] ... zB, dass es zwischen "nul" in Zeile 6 und "for" in Zeile 7 eine Zeilenschaltung geben sollte ... [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Biber
13.08.2010 um 16:23 Uhr
Moin bastla,

Zitat von bastla:
Ich habe mit [...] der oben stehenden (wieder heruntergeladenen) Batch-Version folgendes Ergebnis erhalten:

Du würdest den Fehler bestimmt sofort finden, wenn kali64 seine Version postet und du diese herunterlädst...

Grüße
Biber
Bitte warten ..
Mitglied: bastla
13.08.2010 um 16:29 Uhr
@Biber
Hoffentlich müsste ich sie noch nicht mal runterladen ...

Grüße
bastla
Bitte warten ..
Mitglied: kali64
13.08.2010 um 16:55 Uhr
Juhuu...es RENNT!!!

Keine Ahnung, warum es gerade eben nicht funktioniert hat, aber jetzt läuft es ohne Fehler.

Vielen Dank für eure schnelle Hilfe, ihr seid echt Klasse!!!

Viele Grüße + angenehmen Abend noch
Kali
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Suchen ersetzen mit Sonderzeichen
gelöst Frage von GNLen1Batch & Shell2 Kommentare

Hallo zusammen. Ich habe einen Suchen /Ersetzen Code aus diesem Forum genommen. In einer Datei wird nach bestimmten Begriffen ...

Batch & Shell
Suchen und Ersetzen mit Sonderzeichen
gelöst Frage von snowdreamBatch & Shell6 Kommentare

Hallo zusammen, ich brauche mal wieder eure Hilfe. Ich hab hier im Forum schon einiges gelernt und auch schon ...

Batch & Shell

Powershell String Suchen mit Wildcard und Ersetzen

gelöst Frage von herrmanndominicBatch & Shell6 Kommentare

Hallo zusammen, ich bräuchte Unterstützung bei einem Powershell Script. Ich habe ein Java Rollout per GPO über ein PowerShell ...

Batch & Shell

String aus Spalte in csv auslesen und ersetzen

Frage von mIsSteRBatch & Shell4 Kommentare

Hallo, meine aktuelle Frage bezieht sich auf diese Frage von Dienstag. Ich muss nun eine csv auslesen und dort ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 8 StundenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 8 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 11 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server40 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing19 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...