freude
Goto Top

Datei kopieren und Dateiinhalt verändern

Hallo zusammen,

ich möchte eine TXT-Datei zyklisch von Verzeichnis A nach Verzeichnis B kopieren
und parallel den Dateininhalt filtern und ändern, z.B. die Datei enthält drei Zeilen Text, in der zweiten Zeile
befindet sich ein Text in der Form
"VW Polo (silber), Bj. 1998"

Ich möchte nun die Klammern () inkl. dem Text
dazwischen herausfiltern, sodaß in der Zieldatei in der zweiten Zeile nur noch
"VW Polo, Bj. 1998" steht.

Hat jemand eine effiziente Lösung per Batch? Hab schon mit findstr rumprobiert, bin aber
noch zu keinem zufriedenstellenden Ergebnis gekommen....
Merci im Voraus,
freude

Content-Key: 44274

Url: https://administrator.de/contentid/44274

Printed on: April 23, 2024 at 16:04 o'clock

Member: bastla
bastla Nov 13, 2006 at 06:12:15 (UTC)
Goto Top
Hallo freude!

Falls die Klammern nur einmal vorkommen, könnte es so gehen:
for /f "tokens=1,3 delims=()" %%i in (fahrzeuge.txt) do echo %%i%%j  

HTH
bastla
Member: freude
freude Nov 13, 2006 at 07:42:26 (UTC)
Goto Top
Moin bastla,

danke für den Tip, die Klammern können optional jedoch in jeder Zeile vorkommen.... face-sad

Grüße,

freude
Member: Biber
Biber Nov 13, 2006 at 07:54:44 (UTC)
Goto Top
Moin freude,
z.B. die Datei enthält drei Zeilen Text, in der zweiten Zeile befindet sich ein Text in der Form

Bitte versuche doch noch einmal, die "Gesetzmäßigkeit", bei der nun geändert werden soll zu beschreiben.
Denn ohne Gesetzmäßigkeit ist kein (Batch-)Algorithmus möglich.

Danke
Biber
Member: miniversum
miniversum Nov 13, 2006 at 11:03:50 (UTC)
Goto Top
gehts so?
for /f "tokens=1,2,4 delims=]()" %%i in ('find /N /V "@@@" Fahrzeuge.txt') do if %%i==[2 echo %%j%%k

miniversum
Member: freude
freude Nov 13, 2006 at 11:51:49 (UTC)
Goto Top
Die Gesetzmäßigkeit sieht so aus:

Es gibt eine Datei, z.B. Fahrzeug.txt heißt und wie folgt aufgebaut ist:

<Begin>
Hier sind zwei Autos
VW Polo (grün), Bj.1989
VW Golf (blau), Bj. 1990
<End>

Diese Datei soll von Verzeichnis A nach Verzeichnis B kopiert werden und gleichzeitig die Klammern inkl. dem Text darin entfernt werden, sodaß die Datei letztendlich so aussieht:

<Begin>
Hier sind zwei Autos
VW Polo, Bj.1989
VW Golf, Bj. 1990
<End>

Danke für die vorherigen Tips, leider bekomme ich dabei die Meldung "%%i ist syntaktisch an dieser Stelle nicht verarbeitbar"

Merci im Voraus,
freude
Member: Biber
Biber Nov 13, 2006 at 12:40:20 (UTC)
Goto Top
Moin freude,

::-------------snipp fzgXform.bat
@echo off & setlocal
For /f "delims=" %%i in (fahrzeuge.txt) do call:processline "%%i"  
goto :eof

:processline
echo %1|findstr "[()]">nul || echo %~1 && goto :eof  
for /f "tokens=1,3* delims=()" %%x in (%1) do echo %%x%%y  
::-------------snapp fzgXform.bat

Gruß Biber

P.S. Beim einfachen Entsorgen der Klammer samt Inhalt [z.B. "(grün)"] bleibt natürlich die optisch gewöhnungsbedürftige Kombination Leerzeichen-Komma-Leerzeichen übrig.
Hier sind zwei Autos
VW Polo , Bj.1989
VW Golf , Bj. 1990
> Letzte Zeile ggf. ersetzen mit Zwischenspeichern in Variable %line% und Ersetzen mit %line: ,=,%.
 ...
for /f "tokens=1,3* delims=()" %%x in (%1) do set "line=%%x%%y"  
Echo %line: ,=,%
(falls es jemanden Pingeligen stören sollte.)
Member: Biber
Biber Nov 16, 2006 at 00:33:54 (UTC)
Goto Top
Mach uns mal die freude, freude,

und sach' an, ob Du schon getestet hast oder ob Du jetzt doch lieber die Autos farbig lässt
...oder wie der Threadstatus ist...

Danke
Biber