ichbinsdennis
Goto Top

Batch - Bestimmte Zeile aus .txt in Variable einlesen

Hallo erstmal..
Habe mir hier schon einige Tipps & Infos als anonymer User geholt, aber nun musste ich mal selbst auf mich abgestimmte Hilfe einholen (;

Mein Problem:

Ich habe eine Textdatei mit vielen verschiedenen Links (1 Link pro Zeile).
Nun will ich mit Hilfe einer Batch Datei, den Link EINER bestimmten Zeile in eine Variable einlesen und dann mit Firefox öffnen.
Ich hab hier zwar schon viel mit Variabeln gelesen, leider aber nur das einlesen von mehreren Zeilen gefunden, und konnte es nicht für mich abändern.

In etwa hatte ich mir das so vorgestellt

- Zeile 1 der Datei C:\test.txt -> Variable
- start /w "firefox.exe" "Variable"
- das wars (;

Für euch Batchprofis kein Problem oder? Wäre nett hier Hilfe zu bekommen

MfG

Content-Key: 105749

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

Printed on: April 19, 2024 at 21:04 o'clock

Member: Biber
Biber Jan 12, 2009 at 11:36:23 (UTC)
Goto Top
Moin Dennis,

willkommen im Forum.
Wenn nur die erste Zeile der Datei komplett eingelesen werden soll, dann geht es so.
SET /p variable=<c:\test.txt
echo Inhalt der Variablen: %variable%

Grüße
Biber
Member: Woolfsmann
Woolfsmann Jan 12, 2009 at 11:42:10 (UTC)
Goto Top
for /f %%i in (C:\Batch\Link.txt) do (
start %%i
)

kommt in die Batch


www.heise.de

kommt in die Link.txt


und wenn der Firefox standartbrowser ist öffnet er den Link dann darin

gruß
Member: ichbinsdennis
ichbinsdennis Jan 12, 2009 at 12:21:32 (UTC)
Goto Top
Problem ist:
Eine 2. .bat soll dann die 2. Zeile der test.txt auslesen und als variable speichern und dann im Browser öffnen.. Wie würde die und die folgenden (3. 4. 5. 6. Zeile) .bats dann aussehen müssen?
Member: Woolfsmann
Woolfsmann Jan 12, 2009 at 13:39:42 (UTC)
Goto Top
Sollen die Links alle nacheinander in EINEM Browser geöffnet werden ? Dann geht das so, dann werden alle Links der Datei als Tabs geöffnet


Oder was möchtest du genau ?

gruß
Member: ichbinsdennis
ichbinsdennis Jan 12, 2009 at 13:53:59 (UTC)
Goto Top
Es sollen seperate .bat dateien seien, die in keinem Zusammenhang miteinander stehen sollen.

Bsp.:

test.bat -> liest Zeile 1 von test.txt aus und öffnet den Link mit Firefox
test1.bat -> liest Zeile 2 von test.txt aus und öffnet den Link mit Firefox

etc.

Die .bats sollen in keinen Zusammenhang gebracht werden also keine Schleife oder nacheinander aufrufen oder so.. Einfach einzeln ablaufen können!

Geht das?
Member: Woolfsmann
Woolfsmann Jan 12, 2009 at 14:08:45 (UTC)
Goto Top
Ok dann hatte ich dich Falsch verstanden.. Ich bin auch nicht so ein Batch Pro .. aber aus diesem Beitrag

EINE Zeile aus TXT-Datei auslesen

und ein bisschen Experimentierfreude konnte ich das für dich Bauen.

::-------LineToVar.bat
@echo off


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

start %Var%

:: Set var=
goto :eof

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

Dieses Beispiel ist für Zeile 37 .. die Zahl must du ändern um es für andere Zeilen zu haben

Das must du in ne Batch schreiben und die Datei mit den Links muss in dem Ordner liegen oder du must den Pfad bei (Link.txt) ändern

Gruß
Woolfsmann
Member: Turrex0100
Turrex0100 Jan 12, 2009 at 14:33:50 (UTC)
Goto Top
hi, ichbinsdennis^^
und willkommen im Forum.

hätte ne erste idee:


@echo off & setlocal
set "N=d:\datei.txt"
set "T=%temp%\NamNum.txt"
findstr /n "^" "%N%">%T%
cls
echo.
type %temp%\NamNum.txt
echo.
set /p Nr= Link Nummer:
cls
for /f "tokens=1* delims=:" %%i in ('findstr /b "%Nr%:" %T%') do set "link_name=%%j"
del %T%

echo %link_name%


in dieser form kannst du in der batdatei die zeile angeben, die du öfnen möchtest...


die Variable N ist die datei die du auslesen willst,
die Variable T is eine temporäre datei die ich benutze um die links zu nummerieren.
echo %link_name% musst du jetzt nurnoch durch die funktion ersetzen, die mit dem link gemachtwerden soll


wie gesagt ist nurein erster Denkansatz.

lg Trx
Member: ichbinsdennis
ichbinsdennis Jan 12, 2009 at 14:39:31 (UTC)
Goto Top
vielen Dank für die schnelle Hilfe, falls nochmal etwas ist, melde ich mich (;

MfG