8.6k Aufrufe
Gefragt in WindowsXP von romero Mitglied (323 Punkte)
hallo,

ne frage.wie kann ich den inhalt einer txt-datei umbenennen?

also es hat immer folgenden inhalt:

a123-44444-556-00 oder
a123-44440-557-00 oder
...

und soll so umbenannt werden,das es so am ende heißt:

a123_44444_556*
a123_44440_557*
...

hab zwar das mit ner FOR-schleife versucht bzw mit dem REN aber das macht er irgendwie nich so wie er will.

also (das ganze ist inner batchdatei):

FOR /F "tokens=1*" %%i IN (test.txt) DO REN *-*-*-* *_*_*

21 Antworten

0 Punkte
Beantwortet von nostalgiker6 Experte (7.1k Punkte)
"Umbenennen" scheint mir da nicht das richtige Wort zu sein - die Texte werden schlich geändert. Und dazu würde ich einfach "Suchen und Ersetzen" verwenden.
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
und wie soll das gehen?
also das die for-schleife die txt aufruft und dann den inhalt sucht und ersetzt?

und wie ist da der befehl?also statt REN muss ich was einsetzen???
0 Punkte
Beantwortet von nostalgiker6 Experte (7.1k Punkte)
Ich meinte kein Programm, sondern schlicht die Ändern-Funktion jedes beliebigen Editors.
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
Umbenennen kannst du nur Dateien - nicht deren Inhalte. Willst du das ganze über Batch machen, war die FOR-Schleife per Tokens zwar richtig, aber bei weitem nicht ausreichend:
- die Token müssen entsprechend richtig erkannt werden (aufwendig)
- jede Zeile muss dann geändert per ECHO ausgegeben werden und kann umgeleitet werden (und somit in eine neue Datei geschrieben werden).

Bessere Texteditoren erledigen das aber für dich sehr viel komfortabler, z.B. mit regulären Ausdrücken - auch auf mehrere Dateien. Beispiel: UltraEdit.
0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Romero,

Klick --> Ein Treffer aus der SN-Suche, der dich vermutlich weiter bringen kann.

Gruß
Kalle
0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Z.B. Suche nach "-00 oder" und ersetze durch "*".
Dann noch "-" durch "_" ersetzen und fertig.

Gruß Flupo
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
das mit dem suchen-ersetzen ist zwar nett aber wenn z.b ein inhalt so heißt "a123-44444-008-00 dann wird das mit dem suchen nach -00 und erstzen in * schwierig.soweit war ich ja schon.kann ich das nicht mittels tokens,etc. machen?
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
hab was erstellt:

FOR /F "tokens=1,2,3,4* delims=-" %%i IN (test.txt) DO ECHO %%i_%%j_%%k* > test1.txt

da werden zwar jede zeile ausgelesen und verarbeitet also ohne das letzte -00 (also von: a123-44444-005-00 in a123_44444_005*), aber er liest bzw schreibt nur die letzte ausgelesene zeile aus der test.txt in die neue test1.txt ein.wie kann ich ihm sagen,das er alle einlesen bzw in die neue schreiben soll?bzw dann halt in die alte???
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
mit >> statt >
0 Punkte
Beantwortet von romero Mitglied (323 Punkte)
na klar.bin ja in nem batch drin.
vielen dank.so nun hab ich das ganze prob gelöst.

FOR /F "tokens=1,2,3,4 delims=-" %%i IN (test.txt) DO @ECHO %%i_%%j_%%k* >> test1.txt

nun kann ich weiter frimeln :D
...