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-Key: 19980

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

Printed on: April 16, 2024 at 14:04 o'clock

Member: BigWumpus
BigWumpus Nov 18, 2005 at 19:14:07 (UTC)
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
Member: edv-guru
edv-guru Nov 18, 2005 at 19:37:34 (UTC)
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
Member: Biber
Biber Nov 18, 2005 at 21:04:31 (UTC)
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
Member: edv-guru
edv-guru Nov 19, 2005 at 22:07:43 (UTC)
Goto Top
thx
Member: BigWumpus
BigWumpus Nov 20, 2005 at 08:30:56 (UTC)
Goto Top
Alle Achtung, was selbst MS so in die Shell programmieren kann!