78505
Goto Top

msdos findstr Wenn Zeile gefunden ab der 10 Spalte bis zur 20 Spalte Ergebnis ausgeben

Vielleicht weiß einer die Lösung!

Dankeschön erstmal für euere Antworten!!! Vielleicht kann ich dir das genauer erklären was ich vor habe!!!
Die Datei Serial.txt sieht folgendermaßen aus z.B.

SGP 130509075103213700000000
SGP 130509074103213900000000
SGP 130509076103213300000000
SGP 130509072103213200000000
SGP 130509077103213100000000

Mit dem Befehl "findstr" soll die jeweilige Batch alle Zeilen mit den Anfangsbuchstaben "SGP" heraussuchen wenn eine Zeile gefunden wurde soll er nur ab der 10 Spalte jeweils bis zur 20 Spalte die Werte heraugeben und diese in eine txt-Datei "test.txt" schreiben.

Ergebnis der test.txt:

0751032137
0741032139
0761032133
0721032132
0771032131

Die nächste Problematik dies sich stellt zwischen SGP und 13...... befindet sich ein Zwischenraum bzw. Leertaste.
Wie sieht nun das Script genau aus????!!!!????
Vielleicht weiß einer die genaue Lösung der Problematik.
Ich würde mich über paar Lösungsansätze nochmals freuen.

Content-Key: 115893

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

Ausgedruckt am: 28.03.2024 um 12:03 Uhr

Mitglied: bastla
bastla 12.05.2009 um 16:32:42 Uhr
Goto Top
Auch Dir ein freundliches "Hallo", atb2010!

Falls Du ev doch "CMD-findstr" verwendest (und die durchsuchte Datei nicht vor Sonderzeichen strotzt) , sollte sich das so lösen lassen:
@echo off & setlocal
for /f "delims=" %%i in ('findstr /c:"?????????" C:\Test.txt') do set "Zeile=%%i" & call :ProcessLine  
goto :eof

:ProcessLine
echo %Zeile:~9,11%
goto :eof
Grüße
bastla

[Edit] Anführungszeichen in Zeile 2 korrigiert [/Edit]
Mitglied: Biber
Biber 12.05.2009 um 18:24:07 Uhr
Goto Top
Moin atb2010,
<OT>
willkommen im Forum und danke für Deine Freundlichkeit.

Nur aus Neugier - gibt es irgendeinen kausalen Zusammenhang zwischen "msdos", der Verwendung von FindStr.exe und dem Anzeigenwollen eines Substrings einer Zeile???

Oder wolltest Du einfach ein bisschen mit uns rumalbern?

Könnte sein... ich glaube, diese Woche ist ein ganzer Bus gekommen...

</OT>

Grüße
Biber
Mitglied: 60730
60730 13.05.2009 um 13:39:57 Uhr
Goto Top
Zitat von @Biber:
Moin atb2010,
<OT>
/snip

Oder wolltest Du einfach ein bisschen mit uns rumalbern?

Könnte sein... ich glaube, diese Woche ist ein ganzer Bus
gekommen...


</OT>
/snap

[OT]
Ich glaube, Biber hatte recht - nachdem heute der Inhalt von ATB2010s Zwischenablage grade nochmal in einem neuen Thread aufgetaucht ist und ich Ihn darauf hingewiesen habe, er möge sich doch mal "hier" melden" anstatt Doppelposting zu schreiben ....

  • war der neue Beitrag zuerst als gelöst markiert
  • und dann im Nirvana verschwunden
  • Aber kein feedbäck hier..
[/OT]

Grüße
Biber
zurück, wobei ich es immer wieder interessant und lehrreich finde, wie Bastla an Probleme ran geht face-wink ich hätts leicht anders gemacht
Mitglied: bastla
bastla 13.05.2009 um 15:02:57 Uhr
Goto Top
@timobeil
ich hätts leicht anders gemacht
Wenn Du damit meinst, Du hättest das Anführungszeichen in Zeile 2 ev doch erst nach dem "set" platziert, bin ich mittlerweile bei Dir ... face-wink
@78505
Nach Deinem (inzwischen ergänzten) Beispiel wären es 10 Zeichen ab Position 11 - dann etwa so:
@echo off & setlocal
set "Ein=D:\Sehrreal.txt"  
set "Aus=D:\Test.txt"  

if exist "%Aus%" del "%Aus%"  
for /f "delims=" %%i in ('findstr /b "SGP" "%Ein%"') do set "Zeile=%%i" & call :ProcessLine  
goto :eof

:ProcessLine
>>"%Aus%" echo %Zeile:~10,10%  
goto :eof

Grüße
bastla