Per Batch Einträge bestimmter Spalten einer Text-Datei löschen und ersetzen
Hi, bin totaler Anfänger in Batch und sitze an folgendem Probelm: Ich soll die Tabelleneinträge bestimmter Spalten in einer Textdatei komplett löschen und allesamt mit Null ersetzen. Mit welchem Befehl kann ich in Batch auf bestimmte Spalten (in meinem Fall Spalten 8-13, wobei die 13. Spalte die letzte is) zugreifen?
Schonmal Danke im Voraus!
P.S.: Die Tabellen sind mehere Tausend Zeilen lang und ich soll das Problem explizit mit Batch lösen..
Schonmal Danke im Voraus!
P.S.: Die Tabellen sind mehere Tausend Zeilen lang und ich soll das Problem explizit mit Batch lösen..
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 242182
Url: https://administrator.de/forum/per-batch-eintraege-bestimmter-spalten-einer-text-datei-loeschen-und-ersetzen-242182.html
Ausgedruckt am: 25.04.2025 um 12:04 Uhr
7 Kommentare
Neuester Kommentar
Dein Beispiel hat nur 11 Spalten und keine 13... wasn nu?
Einfach ersetzen oder löschen geht nicht - musst du über eine Tempdatei lösen.
Mit:
Kannst du alle Spalten auslesen und dann in eine neue Textdatei schieben. Die, die du dann nicht brauchst lässt du weg, also wenn die letzten drei weg sollen %%k %%j %%i und an die Stelle kannst du auch einfach 0 0 0 setzen.
Gruß
Einfach ersetzen oder löschen geht nicht - musst du über eine Tempdatei lösen.
Mit:
@echo off
set "txt=input.txt"
set "temp=output.txt"
for /f "tokens=1-11 delims= " %%a in (%txt%) do echo %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k >> %temp%
Gruß
Ok... dann musst du bei Tokens aber 1-13 schreiben und das echo entsprechend erweitern...
Das mit der Tabellenform wird nichts - zumindest wüsste ich nicht wie...vielleicht ja der Bastla. Mit Powershell wird das sicher gehen...
Wart mal ab bis morgen... da kommt sicher der Bastla mit einer Lösung um die Ecke
Gruß
ps: Poste mal bitte eine korrekte Beispieldatei...
Das mit der Tabellenform wird nichts - zumindest wüsste ich nicht wie...vielleicht ja der Bastla. Mit Powershell wird das sicher gehen...
Wart mal ab bis morgen... da kommt sicher der Bastla mit einer Lösung um die Ecke
Gruß
ps: Poste mal bitte eine korrekte Beispieldatei...
Moin,

(ersetzt die letzten 3 Spalten jeder Zeile durch Nullen)
oder wenn das gleiche File ersetzt werden soll:
Grüße Uwe
p.s. du siehst es lohnt sich, mit Powershell mal zu beschäftigen
Zitat von @Grinsebaer:
P.S.: Ich sollte das mit Batch lösen, mit Powershell hab ich nämlich auch noch nie gearbeitet..
dann wird's aber Zeit für einen Powershell-Einzeiler P.S.: Ich sollte das mit Batch lösen, mit Powershell hab ich nämlich auch noch nie gearbeitet..
gc "d:\fileIN.txt" | %{$_ -replace '(.*?)\s+(([\.\d-]+\s*){3})$','$1 0 0 0'} | set-content "D:\fileOUT.txt"
oder wenn das gleiche File ersetzt werden soll:
$file = "D:\file.txt"
(gc $file) -replace '(.*?)\s+(([\.\d-]+\s*){3})$','$1 0 0 0' | set-content $file
p.s. du siehst es lohnt sich, mit Powershell mal zu beschäftigen