zockerman
Goto Top

Batch Array

Ich suche eine Lösung für ein Batch-Array.
Es wäre super nett, wenn mir jemand helfen könnte.

Hallo (:

und zwar ich habe ein Problem.
Ich möchte eine Textdatei (URL.txt) einlesen und verarbeiten.
Die Datei sieht etwas so aus:
http://extreme.pcgameshardware.de/attachments/270725d1285050041-nvidia-plant-externe-notebookgrafik-nvidia.jpg Grafik1
http://extreme.pcgameshardware.de/attachments/93380d1239295407-download-nvidia-wallpaper-pack-vol-1-nvidiawallpaper.jpeg Grafik2
http://img45.imageshack.us/img45/7351/nvidia3wayslibh6.jpg Grafik3
http://www.geekpedia.com/gallery/fullsize/green-nvidia-wallpaper.jpg Grafik4
http://www.nvidia.ch/docs/IO/66528/header_productshot1.png Grafik5
http://extreme.pcgameshardware.de/members/alexb_87-albums-mein-pc-1401-picture16734-nvidia-geforce.jpg Grafik6
http://www.nvidia.de/docs/IO/64684/header_productshot1.png Grafik7
http://www.apfelnews.eu/wp-content/uploads/2009/04/nvidia-quadro-4800.png Grafik8
http://pics.computerbase.de/1/1/2/0/1/1_m.jpg Grafik9
Also Die Url + Leerzeichen + Name

Ich will nun die Url und den Namen nehmen und in eine Variable schreiben.
Ich habe schon ein bisschen was gefunden, aber es funktioniert nicht.

Also wenn mir jemand helfen könnte, wäre das echt super (:

Hier mein bisheriger Code:
@echo off

Set strArrayNumber=0
For /f "tokens=1" %%i IN (url.txt) DO (  
        Set strArrayValue=%%i
        call:functionArray
        )
:functionArray
set /a strArrayNumber=%strArrayNumber% + 1
set strURL.%strArrayNumber%=%strArrayValue%


Set strArrayNumber=0
For /f "tokens=2" %%i IN (url.txt) DO (  
        Set strArrayValue=%%i
        call:functionArray
        )
:functionArray
set /a strArrayNumber=%strArrayNumber% + 1
set strNAME.%strArrayNumber%=%strArrayValue%

:loop
set /a strArrayNumber=%strArrayNumber% - 1
set currentURL = strURL.%strArrayNumber%
set currentNAME = strNAME.%strArrayNumber%
echo %currentURL%
echo %currentNAME%
echo.
if not "strArrayNumber"=="0" goto loop  
pause

[Edit Biber] Codeformatierung [/Edit]

Content-Key: 156952

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

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

Member: miniversum
miniversum Dec 14, 2010 at 11:51:43 (UTC)
Goto Top
In Batch existieren keine Arrays und sie werden auch nicht benötigt, da gewöhnlicherweise alles direkt nach einander verarbeitet wird.
In deinem Fall dan also so:
@echo off
For /f "tokens=1,2 delims= " %%i IN (url.txt) DO (  
echo currentURL: %%i
echo currentNAME: %%j
)
Member: Zockerman
Zockerman Dec 14, 2010 at 13:32:28 (UTC)
Goto Top
Danke super.
Funktioniert und macht genau das was ich wollte.

Aber ich hab eine frage. es wird ja nirgents die variable j erwähnt. liegt das daran, dass j im alphabet nach i kommt also wenn ich weitere rows mache
@echo off
For /f "tokens=1,2,3 delims= " %%i IN (url.txt) DO (  
echo currentURL: %%i
echo currentNAME: %%j
echo currentWEITERES: %%k
)
?
Member: bastla
bastla Dec 14, 2010 at 14:18:42 (UTC)
Goto Top
Hallo Zockerman!
liegt das daran, dass j im alphabet nach i kommt
Volltreffer face-smile

BTW:
For /f "tokens=1,2,3 delims= " %%i IN (url.txt) DO
ließe sich verkürzen auf
For /f "tokens=1-3" %%i IN (url.txt) DO
da Leerzeichen (und TAB) defaultmäßige Trennzeichen ("delimiter") einer "for /f"-Schleife sind ...

Grüße
bastla