edv-guru
Goto Top

EINE Zeile aus TXT-Datei auslesen

Sodale...Jetz bin ich mit den Nerven am Ende.Ich hab sau viel gesucht, aber wenn es um die Aufgabenstellung geht, EINE Zeile aus ner .dat Datei zu lesen und an eine Variable zu übergeben, dann hab ich nix gefunden.

1. for /f %%i in(%pfad%settings.dat) do echo %i
2.type %pfad%settings.dat >> set var

Beides geht irgendwie nicht.
Ka wies richtig geht....Bitte um Hilfe

Gruß,
EDV-guru

Content-ID: 19980

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

Ausgedruckt am: 08.11.2024 um 07:11 Uhr

BigWumpus
BigWumpus 18.11.2005 um 20:14:07 Uhr
Goto Top
Früher hieß es 4DOS, jetzt 4NT (auch für Windows XP).
Mit dieser Erweiterung kannst Du tolle Zugriffe auf Dateien in Batches realisieren.

echo @line[%datei%;5]


face-wink
edv-guru
edv-guru 18.11.2005 um 20:37:34 Uhr
Goto Top
thx, aber eigl wollte ich mit einem dos-überbleibsel das regeln, da das programm für die weitergabe gedacht ist face-smile

THx,
EDV-guru
Biber
Biber 18.11.2005 um 22:04:31 Uhr
Goto Top
Moin edv-guru,

bekommen wir auch ohne 4DOS und Hilfskram hin. Ich gehe mal von Windows-Versionen diesseits von Win9x aus.

::-------LineToVar.bat
@echo off
echo ----testdatei.txt----
Type testdatei.txt
Echo ----ende testdatei.txt
:: Letzte Zeile in %Var% speichern
for /F "Tokens=*" %%i in (Testdatei.txt) do Set Var=%%i  
Echo Letzte Zeile...: [%Var%]
Set var=

::Erste Zeile in %var% speichern
for /F "Tokens=*" %%i in (Testdatei.txt) do call :setvarOnce "%%i"   
Echo Erste Zeile....: [%Var%]
Set var=
::
:: n-te Zeile in %var% speichern; n ist im Beispiel 3
Set /a "cnt=1"  
Set /a "n=3"  
for /F "Tokens=*" %%i in (Testdatei.txt) do call :setvarFixLine %n% "%%i"   
Echo n-te Zeile, n=%n%: [%Var%]

:: Set var=
goto :eof
~~~
:setvarOnce --Eine Variable einmal setzen
if "%var%"=="" Set "Var=%~1"  
goto :eof

~~~
:setvarFixLine
If %cnt%==%1 Set "Var=%~2"  
Set /a "cnt+=1"   
goto :eof
::-------LineToVar.bat
Output des Schnipsels:

>lineTovar
----testdatei.txt----
Zeile Eins
Zweite Zeile
und Drei
und Zeile Vier
----ende testdatei.txt
Letzte Zeile...:[und Zeile Vier]
Erste Zeile....: [Zeile Eins]
n-te Zeile, n=3: [und Drei]
~~~~
Und eine bestimmte Zeile mit einem Suchstring kann man/frau mittels "Find" in einer Textdatei finden und setzen.. dafür gibt es im Forum tonnenweise Beispiele.
HTH Biber
edv-guru
edv-guru 19.11.2005 um 23:07:43 Uhr
Goto Top
thx
BigWumpus
BigWumpus 20.11.2005 um 09:30:56 Uhr
Goto Top
Alle Achtung, was selbst MS so in die Shell programmieren kann!