Zeichen an einer bestimmten Stelle aus einer Textdatei auslesen
Hallo und Guten Tag Forums-Teinehmer,
dies ist meine erste Frage, die ich an dieses Forum stelle. Ich kam durch meine Internetrecherche auf diese Plattform, als ich nach einer Lösung zu meinem Problem gesucht habe.
Mein Problem ist anscheinend gar nicht so schwierig und auch gar nicht neu, wie es mir scheint. Ich fand einige Fragestellungen/Lösungen ähnlich meines Wunsches:
Aus einer Textdatei ohne Leerzeichen (2.txt) sollen an einer bestimmten Stelle (ab dem 33-ten Zeichen) eine bestimmte Anzahl Zeichen (z.B. 2 Zeichen) ausgelesen werden und in einer neuen Datei (2neu.txt) gespeichert werden.
Vielleicht gibt es auch eine Möglichkeit nach "(" zu suchen und dann mit +2 Zeichen zu arbeiten? Dadurch wäre dann die Länge des Verzeichnises egal. Dazu fand ich allerdings keinen Beitrag. Daher mal diese "Schmalspur"-Version von mir als Laien.
Beispiel
Inhalt von 2.txt:
c:\odr\20063063.WRI:1-1:0.9.2(080803)
c:\odr\20063064.WRI:1-1:0.9.2(090205)
c:\odr\20063065.WRI:1-1:0.9.2(100106)
Ergebnis in 2neu.txt soll lauten:
08
02
01
Hier mein bisheriger Stand (mit Hilfe dieses Forums):
@echo off &setlocal
set Quelle=2.txt
set Ziel=2neu.txt
type nul>"%Ziel%"
for /f "usebackq delims=" %%i in ("%Quelle%") do (
set "Zeile=%%i"
Als Ergebnis bei meinen unzähligen Versuchen in der Datei 2neu.txt erhalte ich immer nur:
!Zeile:~2,4!
!Zeile:~2,4!
Kann das vielleicht daran liegen, dass ich die .bat-Datei unter Win2000 mit dem normalen Editor geschrieben habe? Ich bin ratlos. Bitte helft mir weiter.
Besten Dank schon mal im Voraus
Gruß
Wemdas
dies ist meine erste Frage, die ich an dieses Forum stelle. Ich kam durch meine Internetrecherche auf diese Plattform, als ich nach einer Lösung zu meinem Problem gesucht habe.
Mein Problem ist anscheinend gar nicht so schwierig und auch gar nicht neu, wie es mir scheint. Ich fand einige Fragestellungen/Lösungen ähnlich meines Wunsches:
Aus einer Textdatei ohne Leerzeichen (2.txt) sollen an einer bestimmten Stelle (ab dem 33-ten Zeichen) eine bestimmte Anzahl Zeichen (z.B. 2 Zeichen) ausgelesen werden und in einer neuen Datei (2neu.txt) gespeichert werden.
Vielleicht gibt es auch eine Möglichkeit nach "(" zu suchen und dann mit +2 Zeichen zu arbeiten? Dadurch wäre dann die Länge des Verzeichnises egal. Dazu fand ich allerdings keinen Beitrag. Daher mal diese "Schmalspur"-Version von mir als Laien.
Beispiel
Inhalt von 2.txt:
c:\odr\20063063.WRI:1-1:0.9.2(080803)
c:\odr\20063064.WRI:1-1:0.9.2(090205)
c:\odr\20063065.WRI:1-1:0.9.2(100106)
Ergebnis in 2neu.txt soll lauten:
08
02
01
Hier mein bisheriger Stand (mit Hilfe dieses Forums):
@echo off &setlocal
set Quelle=2.txt
set Ziel=2neu.txt
type nul>"%Ziel%"
for /f "usebackq delims=" %%i in ("%Quelle%") do (
set "Zeile=%%i"
"%Ziel%" echo !Zeile:~33,2!)
Als Ergebnis bei meinen unzähligen Versuchen in der Datei 2neu.txt erhalte ich immer nur:
!Zeile:~2,4!
!Zeile:~2,4!
Kann das vielleicht daran liegen, dass ich die .bat-Datei unter Win2000 mit dem normalen Editor geschrieben habe? Ich bin ratlos. Bitte helft mir weiter.
Besten Dank schon mal im Voraus
Gruß
Wemdas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 132799
Url: https://administrator.de/forum/zeichen-an-einer-bestimmten-stelle-aus-einer-textdatei-auslesen-132799.html
Ausgedruckt am: 11.04.2025 um 06:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo wemdas,
solange vor der besagten "(" nicht bereit schon eine ist, sollte es mit dieser kleinen Abwandlung gehen:
Grüße
rubberman
solange vor der besagten "(" nicht bereit schon eine ist, sollte es mit dieser kleinen Abwandlung gehen:
@echo off &setlocal enabledelayedexpansion
set Quelle=2.txt
set Ziel=2neu.txt
type nul>"%Ziel%"
for /f "usebackq delims=( tokens=2" %%i in ("%Quelle%") do (
set "Zeile=%%i"
>>"%Ziel%" echo !Zeile:~2,2!)
Grüße
rubberman
Hallo rubberman,
ich nutze die Gelegenheit und und klinke mich hier mal ein
.
Ich möchte in meiner Txt-Datei in jeder Zeile alle Zeichen nach dem 30 angezeigt bekommen.
Bisher behelfe ich mich mit einem festen Wert von dem ich annehme, er wird nicht überschritten, da es sich um Laufwerkspfade incl. Dateinamen handelt, aber wie lautet die korrekte Syntax?
T@cky
ich nutze die Gelegenheit und und klinke mich hier mal ein
Ich möchte in meiner Txt-Datei in jeder Zeile alle Zeichen nach dem 30 angezeigt bekommen.
Bisher behelfe ich mich mit einem festen Wert von dem ich annehme, er wird nicht überschritten, da es sich um Laufwerkspfade incl. Dateinamen handelt, aber wie lautet die korrekte Syntax?
"%Ziel%" echo !Zeile:~30,250!)
T@cky