Spalte einer Textdatei mit einer anderen Zahl überschreiben
Hallo zusammen,
ich habe eine Textdatei mit den Namen "Info1.txt, Info2.txt, ... Info100.txt".
Dabei hat jede Textdatei pro Zeile 3 Zahlen getrennt durch einen Tab.
1.44 23.22 0.00
2.21 21.12 0.00
.. ... ...
Wäre es anhand eines Batch Befehls möglich die Nullen durch eine 0.5 und dann bei Info2.txt die Zahl 1, Info3.txt die Zahl 1.5 zu ersetzen. Also pro Textdatei jeweils um 0.5 höher?
Freue mich um jede Hilfe!
Gruß
ich habe eine Textdatei mit den Namen "Info1.txt, Info2.txt, ... Info100.txt".
Dabei hat jede Textdatei pro Zeile 3 Zahlen getrennt durch einen Tab.
1.44 23.22 0.00
2.21 21.12 0.00
.. ... ...
Wäre es anhand eines Batch Befehls möglich die Nullen durch eine 0.5 und dann bei Info2.txt die Zahl 1, Info3.txt die Zahl 1.5 zu ersetzen. Also pro Textdatei jeweils um 0.5 höher?
Freue mich um jede Hilfe!
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254757
Url: https://administrator.de/forum/spalte-einer-textdatei-mit-einer-anderen-zahl-ueberschreiben-254757.html
Ausgedruckt am: 22.04.2025 um 09:04 Uhr
2 Kommentare
Neuester Kommentar
Hi,
habe jetzt kein fertiges Skript zur Hand. Nur als Anstoß:
https://findandreplace.codeplex.com/
Das Tool ist recht mächtig. Bsonders weil es automatisch Zeichenkodierung erkennt und innerhalb der Dateien auch mit Regulären Ausdrücken arbeiten kann. Damit kannst du dir also eine Batch mit aufbauen.
Wenns wirklich nur einmalig ist und jetzt erstmal rein für den Inhalt: http://www.digitalvolcano.co.uk/textcrawler.html
Auf Ordner zeigen, Regulären Ausdruck erstellen und los gehts. Das Tool macht hunderte von Operationen in zig Dateien in ein paar Sekunden bis Minuten.
Für die Umbenennung ginge natürlich Batch mit einer Schleife. Sehr mächtig zum umbennenn ist Bulk Renmae Utility: http://www.bulkrenameutility.co.uk/Screenshots.php
Hier gehts sofort - aber mti 2. Schritten: Start bei 5, Pad bei 2 und Incr. bei 5.
Man erhällt sofort 05, 10, 15, 20, 25 .... Der zweite Schritte wäre dann den Punkt zu sezen.
Das hat jetzt natürlich nix mit Skripten zu tuen. Aber zumindest siehst du dort z.B. auch, wie sich Reg. Ausdrücke auswirken. Ggf. kannst du dir damit in Zukunft andere Sachen erleichtern.
Mit freundlichen Grüßen Crusher
PS: In einen Rutsch sollte es auch gehen! Ist schon spät, sorry. Du kannst beim BRU auch mehrere kombinieren. Mir fällt nur gerade nix sinnvolles ein. Wenn du die Zahlen durch "0." ersetzt passt das genau für die erste Datei: 0.5. Bei den anderen hätte man wieder ß.10, 0.15 ... Probier mal selber. Oder mach 2 Durchläufe.
habe jetzt kein fertiges Skript zur Hand. Nur als Anstoß:
https://findandreplace.codeplex.com/
Das Tool ist recht mächtig. Bsonders weil es automatisch Zeichenkodierung erkennt und innerhalb der Dateien auch mit Regulären Ausdrücken arbeiten kann. Damit kannst du dir also eine Batch mit aufbauen.
Wenns wirklich nur einmalig ist und jetzt erstmal rein für den Inhalt: http://www.digitalvolcano.co.uk/textcrawler.html
Auf Ordner zeigen, Regulären Ausdruck erstellen und los gehts. Das Tool macht hunderte von Operationen in zig Dateien in ein paar Sekunden bis Minuten.
Für die Umbenennung ginge natürlich Batch mit einer Schleife. Sehr mächtig zum umbennenn ist Bulk Renmae Utility: http://www.bulkrenameutility.co.uk/Screenshots.php
Hier gehts sofort - aber mti 2. Schritten: Start bei 5, Pad bei 2 und Incr. bei 5.
Man erhällt sofort 05, 10, 15, 20, 25 .... Der zweite Schritte wäre dann den Punkt zu sezen.
Das hat jetzt natürlich nix mit Skripten zu tuen. Aber zumindest siehst du dort z.B. auch, wie sich Reg. Ausdrücke auswirken. Ggf. kannst du dir damit in Zukunft andere Sachen erleichtern.
Mit freundlichen Grüßen Crusher
PS: In einen Rutsch sollte es auch gehen! Ist schon spät, sorry. Du kannst beim BRU auch mehrere kombinieren. Mir fällt nur gerade nix sinnvolles ein. Wenn du die Zahlen durch "0." ersetzt passt das genau für die erste Datei: 0.5. Bei den anderen hätte man wieder ß.10, 0.15 ... Probier mal selber. Oder mach 2 Durchläufe.
Hallo THRILLER,
sollte etwa so funktionieren:
Grüße
rubberman
sollte etwa so funktionieren:
@echo off &setlocal EnableDelayedExpansion
set "tmpfile=%tmp%\tmp.txt"
for %%i in ("Info*.txt") do (
set "basename=%%~ni"
set /a "num=!basename:Info=! * 50 + 1000000"
set /a "begin=!num:~,-2! %% 10000"
>"%tmpfile%" (for /f "usebackq tokens=1,2" %%j in ("%%~i") do echo %%j %%k !begin!.!num:~-2!)
move /y "%tmpfile%" "%%~i"
)
Grüße
rubberman