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

Batch soll bestimmte Zeilen auslesen und ersetzen, aber wenn ich eine Zeile einfüge welche eine Klammer enthält startet die Batch Datei nicht...

Frage Entwicklung Batch & Shell

Mitglied: FlorianHH

FlorianHH (Level 1) - Jetzt verbinden

21.03.2011, aktualisiert 18.10.2012, 7988 Aufrufe, 4 Kommentare

Hallo zusammen,
ich hoffe ihr könnt mir helfen !

Ich habe folgendes Problem:

Ich möchte, dass die Batch-Datei eine Quelldatei öffnet, welche ich definiert habe. Diese Text-Datei enthält mehrere Zeilen, welche ausgelesen und durch eine andere Zeile ersetzt werden sollen.

Die Batch-Datei funktioniert so lange bis ich eine Zeile eingebe die verändert werden soll, wo eine Klammer "()" enthalten ist...
(Zumindest erscheint es mir so, dass es an der Klammer liegt, da die Batch die ganze Zeit funktioniert hat. Aber jetzt wo eine Zeile mit einer Klammer dabei ist funktioniert es nicht mehr).

Im unteren Code funktioniert die erste Zeile allein ohne Probleme:
01.
SET ganze_zeile=!ganze_zeile:# DE0000000000000000000000000000001 Standort1 Name=# DE0000000000000000000000000000001 DE0000000000000000000000000000001 1-1:1.9.1 Standort1 Name!
aber sobald ich die zweite hinzufüge:
01.
SET ganze_zeile=!ganze_zeile:# DE0000000000000000000000000000002 Standort2 (Name)=# DE0000000000000000000000000000002 DE0000000000000000000000000000002 1-1:1.9.1 Standort2 Name!
startet die Batch-Datei nur ganz kurz und schließt sich direkt wieder ohne dass ich etwas erkennen kann und die Ausgabe Datei wird nicht erstellt.


Hier meien komplette Batch-Datei:
01.
echo off 
02.
 
03.
SETLOCAL enabledelayedexpansion 
04.
 
05.
SET quelle=test.txt 
06.
SET ziel=ausgabe.txt 
07.
 
08.
 
09.
FOR /f "delims=" %%i IN ('FINDSTR . %quelle%') DO ( 
10.
SET ganze_zeile=%%i 
11.
 
12.
SET ganze_zeile=!ganze_zeile:# DE0000000000000000000000000000001 Standort1 Name=# DE0000000000000000000000000000001 DE0000000000000000000000000000001 1-1:1.9.1 Standort1 Name! 
13.
 
14.
SET ganze_zeile=!ganze_zeile:# DE0000000000000000000000000000002 Standort2 (Name)=# DE0000000000000000000000000000002 DE0000000000000000000000000000002 1-1:1.9.1 Standort2 Name! 
15.
 
16.
 
17.
ECHO !ganze_zeile! 
18.
ECHO !ganze_zeile! >> %ziel% 
19.
)
(Text rausgenommen von mir. War aufgrund von nicht Wissen etwas böse)
Sie funktioniert ... eigentlich... Zumindest so lange bis ich eine Zeile einfüge, die eine Klammer aufweist..

Kann es an der Klammer liegen?
Wenn ja, habt ihr einen Lösungsvorschlag oder einen Tip wie ich das anders schreiben kann?
Wenn nein, dann hab ich glaube ich ein Problem, weil sonst ist nichts anders an den Zeilen.


Vielen Dank schonmal für eine Antwort oder einen Tipp!!!


Mit freundlichen Grüßen
Flo
Mitglied: 60730
21.03.2011, aktualisiert 18.10.2012
Moin,

startet die Batch-Datei nur ganz kurz und schließt sich direkt wieder ohne dass ich etwas erkennen kann und die Ausgabe Datei wird nicht erstellt.
ist ja beim führenden echo off kein Kunststück..

einen Profi ist sie bestimmt nicht schön, aber sie funktioniert face-smile... eigentlich...
Da das ein leicht umgestrickter Bastla ist - ist die Zeile aber wirklich böse....

btw: Weißt du eigentlich, was du da machst?
  • Zuerst setzt du eine Variable mit einem INhalt und den änderst du und der geänderte Inhalt soll nochmal geändert werden

Klick meine blauen Buchstaben an und liess dir die Infos durch....

Gruß
Bitte warten ..
Mitglied: FlorianHH
21.03.2011, aktualisiert 18.10.2012
Hey,

Danke erstmal für die Antwort!

ist ja beim führenden echo off kein Kunststück..

Okay wusste ich nicht (neuling :S)... Danke schonmal für den Tipp!

Da das ein leicht umgestrickter Bastla ist -
ist die Zeile aber wirklich böse....

Echt? Das tut mir Leid!!! Hab die letzte Woche irgendwo im Netz gefunden, aber es war definitiv nicht hier

btw: Weißt du eigentlich, was du da machst?
  • Zuerst setzt du eine Variable mit einem INhalt und den änderst du und der geänderte Inhalt soll nochmal geändert
werden

Nein nicht sicher... wie gesagt gefunden und bisschen dran rumgebastelt... Sie funtkionierte und ich war erstmal glücklich... :/


Gruß
Flo
Bitte warten ..
Mitglied: bastla
21.03.2011 um 12:53 Uhr
@T-Mo
Da das ein leicht umgestrickter Bastla ist
Na hoffentlich nicht wirklich ...

@FlorianHH
Versuch es so:
SET "ganze_zeile=!ganze_zeile:# DE0000000000000000000000000000002 Standort2 (Name)=# DE0000000000000000000000000000002 DE0000000000000000000000000000002 1-1:1.9.1 Standort2 Name!" 
Grüße
bastla
Bitte warten ..
Mitglied: FlorianHH
21.03.2011 um 13:12 Uhr
Hey bastla,

Danke funktioniert einwandfrei !!!

Gruß
Flo
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (24)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...