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

Beliebigen Text zwischen bestimmten ausdrücken per Batch oder Skript aus ini löschen

Frage Entwicklung Batch & Shell

Mitglied: Blackhawk386

Blackhawk386 (Level 1) - Jetzt verbinden

28.01.2013 um 07:43 Uhr, 3020 Aufrufe, 7 Kommentare

Hi,

ich möchte aus einer ini-Datei einen beliebigen Text zwischen zwei bestimmten ausdrücken, bzw. bis zu einen bestimmten Zeichen löschen. Das ganze soll per Skript oder Batch passieren.

Die ini baut sich wie folgt auf:

...
[Terminplaner]
beliebiger zu löschender Text
[PTimer]
...

Es soll also alles nach dem Ausdruck [Terminplaner] bis zur nächsten eckigen Klammer gelöscht werden,
da nicht auf jedem Rechner der Ausdruck [PTimer] nach [Terminkalender] folgt.

Ich hoffe es kann mir jemand helfen.

Viele Dank!
Mitglied: Friemler
28.01.2013, aktualisiert um 17:31 Uhr
Hallo Blackhawk386,

das könnte so gehen:
01.
@echo off & setlocal 
02.
 
03.
set "InFile=.\test.ini" 
04.
set "OutFile=.\test_new.ini" 
05.
set "BlockBegin=[Terminplaner]" 
06.
 
07.
set "DontWrite=" 
08.
set "Write=" 
09.
 
10.
(for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%InFile%"') do ( 
11.
   if not defined DontWrite ( 
12.
     echo.%%b 
13.
     if "%%b" equ "%BlockBegin%" set /a DontWrite+=1 
14.
   ) else ( 
15.
     echo.%%b|findstr "^\[.*" > NUL && set /a Write+=1 
16.
     if defined Write echo.%%b 
17.
18.
)) > "%OutFile%"
Gruß
Friemler
Bitte warten ..
Mitglied: Blackhawk386
29.01.2013 um 08:42 Uhr
Super, tut genau was es soll!
Vielen Dank dafür.

Allerdings bekomm ich beim Ausführen Fehlermeldungen, ist das ein Problem?

01.
D:\>terminplaner.bat 
02.
Der Befehl "6" ist entweder falsch geschrieben oder 
03.
konnte nicht gefunden werden. 
04.
Der Befehl "13" ist entweder falsch geschrieben oder 
05.
konnte nicht gefunden werden. 
06.
Der Befehl "14" ist entweder falsch geschrieben oder 
07.
konnte nicht gefunden werden. 
08.
Der Befehl "1" ist entweder falsch geschrieben oder 
09.
konnte nicht gefunden werden. 
10.
Der Befehl "2" ist entweder falsch geschrieben oder 
11.
konnte nicht gefunden werden. 
12.
Der Befehl "6" ist entweder falsch geschrieben oder 
13.
konnte nicht gefunden werden. 
14.
Der Befehl "9" ist entweder falsch geschrieben oder 
15.
konnte nicht gefunden werden. 
16.
Der Befehl "12" ist entweder falsch geschrieben oder 
17.
konnte nicht gefunden werden. 
18.
Der Befehl "3" ist entweder falsch geschrieben oder 
19.
konnte nicht gefunden werden. 
20.
Der Befehl "4" ist entweder falsch geschrieben oder 
21.
konnte nicht gefunden werden. 
22.
Der Befehl "5" ist entweder falsch geschrieben oder 
23.
konnte nicht gefunden werden. 
24.
Der Befehl "11" ist entweder falsch geschrieben oder 
25.
konnte nicht gefunden werden.
Bitte warten ..
Mitglied: Friemler
29.01.2013 um 10:07 Uhr
Moin Blackhawk386,

ich vermute, Deine Ini-Datei enthält &-Zeichen. Teste mal die folgende, abgeänderte Version des Scripts:
01.
@echo off & setlocal 
02.
 
03.
set "InFile=.\test.ini" 
04.
set "OutFile=.\test_new.ini" 
05.
set "BlockBegin=[Terminplaner]" 
06.
 
07.
set "DontWrite=" 
08.
set "Write=" 
09.
 
10.
(for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%InFile%"') do ( 
11.
   if not defined DontWrite ( 
12.
     echo.%%b 
13.
     if "%%b" equ "%BlockBegin%" set /a DontWrite+=1 
14.
   ) else ( 
15.
     <NUL set /p "=%%b"|findstr "^\[.*" > NUL && set /a Write+=1 
16.
     if defined Write echo.%%b 
17.
18.
)) > "%OutFile%"
Gruß
Friemler
Bitte warten ..
Mitglied: Blackhawk386
29.01.2013 um 12:06 Uhr
Funktioinert perfekt!

Vielen lieben Dank!
Bitte warten ..
Mitglied: Friemler
30.01.2013 um 11:13 Uhr
Dann setze bitte noch den Beitrag auf "Gelöst".
Bitte warten ..
Mitglied: Blackhawk386
30.01.2013 um 12:01 Uhr
Anfänger Fehler :D
Ist erledigt.
Bitte warten ..
Mitglied: KekseFuerAlle
14.06.2016, aktualisiert 15.06.2016
Tachchen,
ich habe ein ähnliches Problem, wie in diesem Thread:

Eventuell kann mir jemand hierrauf aubauend weiterhelfen.
Und zwar will ich auch einen Text zwischen zwei Zeichen/Zeichenfolgen löschen.
Aber im Gegensatz zu dem oben beschriebenen Fall will ich das nicht in einer .txt Datei, sondern in einer Variable.
Desweiteren ist die Zeichenfolge jedesmal mit 1-2 Zeichen anders (die aber immer an der selben stelle stehen).
Also muss man wahrscheinlich mit Wildcards arbeiten, z.b. Fragezeichen.
Lässt sich das mit Batch überhaupt machen, oder muss man das mit Powershell machen? Wie würde das in Batch / Powershell aussehen?

Zum Beipiel:

Protokoll.T01.beliebigerzulöschenderText-Autor
Protokoll.T02.beliebigerzulöschenderText-Autor
etc ...


Ich hoffe da kann mir jemand weiterhelfen.

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bestimmte Bilder mit Batch löschen
gelöst Frage von hanni007Batch & Shell2 Kommentare

Hallo, seit einigen Tagen bin ich schon als Nichtnutzer in eurem Forum unterwegs. Nun habe ich mich aber entschlossen, ...

Batch & Shell
Batch - Bestimmter Inhalt einer Zeile aus einer txt oder ini als Variable
gelöst Frage von element22Batch & Shell2 Kommentare

Hallo zusammen, leider finde ich den Fehler nicht. Na gut, vielleicht sitzt er vorm Monitor, aber das ist etwas ...

Batch & Shell
Per Batch Einträge bestimmter Spalten einer Text-Datei löschen und ersetzen
Frage von GrinsebaerBatch & Shell7 Kommentare

Hi, bin totaler Anfänger in Batch und sitze an folgendem Probelm: Ich soll die Tabelleneinträge bestimmter Spalten in einer ...

PHP
PHP - Text ab bestimmter Zeile löschen
gelöst Frage von tingelPHP4 Kommentare

Hallo, ich habe eine Textdatei, die immer neu erstellt wird, ähnlich aussieht, aber unterschiedlich lang. Auf den Inhalt der ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 19 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 21 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...