darkprodukt
Goto Top

BATCH Finstr Zeilenlängenbegrenzung Umgehen

Guten Abend,

Ich bin gerade auf ein Problemgestoßen, wo ich bis gerade nichtmal wuste das es jenes gibt.

Und zwar bringt mir finstr bei diesem code:
for /f "delims=" %%j in ('findstr /n /v "akjgriarg" www.abc.com\index.html.%%i^|findstr "^91:"') echo %%j  

Die Meldung: "Zeile 64 ist zu Lang"

Ich hab nachgeschaut und Zeile 64 ist eine 15642 Zeichen Zeile ^^

Wie kan ich das umgehen?

Grüße
Darkprodukt

Edit:
Ich hätte ne Lösung, Ich skippe mit der For-Schleife die ersten 80 Zeilen, aber geht das auch anders?

Content-Key: 188848

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

Ausgedruckt am: 28.03.2024 um 20:03 Uhr

Mitglied: bastla
bastla 30.07.2012 aktualisiert um 23:08:52 Uhr
Goto Top
Hallo Darkprodukt!

Ich schätze mal, ein "skip" wird Dich nicht weiterbringen (das Problem mit der Zeilenlänge hat ja "findstr"), aber die Idee ist schon nicht ganz falsch - da Du ja offensichtlich die Zeile 91 brauchst, etwa so:
set "Zeile="  
for /f "delims=" %%j in ('more +90 www.abc.com\index.html.%%i') do if not defined Zeile set "Zeile=%%j"  
Zu beachten wäre noch, dass es auch eine Beschränkung für die Zeichenanzahl in einer Variablen gibt - siehe http://support.microsoft.com/kb/830473/de

Grüße
bastla
Mitglied: Darkprodukt
Darkprodukt 30.07.2012 aktualisiert um 23:42:59 Uhr
Goto Top
Ok,
aber das am ende "if not defined Zeile" fungtioniert so nicht.

Das ist nehmlich die 2. For Schleife also eigentlich ist es so.

for /l %%i in (1,1,%MAX%) do for /f "delims=" %%j in ('more +90 www.abc.com\index.html.%%i') do set "string=%%j" ^  
												&setlocal enabledelayedexpansion ^
												&set "Link=!string:~68,97!" ^  
											        &echo !Link!>>!TEMP!\Links.txt ^
											        &set "Name=!string:~105,60!" ^  
											        &echo !Name!>>!TEMP!\Names.txt ^
												&endlocal

Der grund wiso "if not defined Zeile" nicht fungtioniert ist, dass ich dan von den anderen .html Datein die Zeile 91 auch nicht bekomme.

Frage: Was möchte muss ich machen um den Hinteren Teil, also der wo nach einer Zeichenkette an einem Bestimmten Ort gesucht wird,
so abzuendern das die Zeichenkette geschrieben wird die mit http:// anfängt und mit .jpg aufhört geschrieben wird?
Die Zeichenkette kan sich nehmlich um 1-2 Buchstaben verschieben.

[Edit] Ok das erste hab ich schon selbst hinbekommen. einfach die Variable vor dem ausführen der 2. For Schleife Leeren
Mitglied: bastla
bastla 30.07.2012 aktualisiert um 23:47:39 Uhr
Goto Top
Hallo Darkprodukt!

Wenn Du den Wert in der Schleife weiterverarbeiten willst, brauchst Du natürlich "delayedexpansion" - eine Prüfung auf "defined" funktioniert aber auch ohne ...

Was bringt eigentlich Deine Zählschleife?

Grüße
bastla

[Edit] Das war die Antwort vor Deinem Edit face-wink [/Edit]
Mitglied: bastla
bastla 30.07.2012 um 23:49:42 Uhr
Goto Top
Hallo Darkprodukt!
Frage: Was möchte muss ich machen um den Hinteren Teil, also der wo nach einer Zeichenkette an einem Bestimmten Ort gesucht wird, so abzuendern das die Zeichenkette geschrieben wird die mit http:// anfängt und mit .jpg aufhört geschrieben wird? Die Zeichenkette kan sich nehmlich um 1-2 Buchstaben verschieben.
Dazu solltest Du einmal ein Beispiel einer solchen Zeichenkette posten ...

Grüße
bastla
Mitglied: Darkprodukt
Darkprodukt 30.07.2012 um 23:55:54 Uhr
Goto Top
ok hier die Zeichenkette aus Zeile 91

                <img width="976" height="1197" id="mainImg" src="http://abc.com/12345678/5e/5e0364c50e80bdadfb07e9653ac2fe9b19784efd292fbbd999ed9374.jpg" alt="12345 AA ABCDER - Chapter 1 - Page 0"  
Mitglied: bastla
bastla 31.07.2012 um 00:04:53 Uhr
Goto Top
Hallo Darkprodukt!

Nur mal als Tipp für den Anfang:
set "URL=http!Zeile:*http=!"
- der Rest lässt sich dann sicher ähnlich oder per "for /f" behandeln ...

Grüße
bastla
Mitglied: Darkprodukt
Darkprodukt 31.07.2012 um 00:25:56 Uhr
Goto Top
Ok Danke,
du hast mal wieder alle meine Probleme gelöst

Grüße
Darkprodukt