Zum Inhalt springen

Batch Problem: Teilstring aus for-schleife


Empfohlene Beiträge

Hi :)

Ich hab da ein Problem, das ich ums verrecken nicht gelöst bekomme.

In einer txt-datei stehen viele zeilen text.

Ich möchte die erste zeile überspringen und ab der 2. zeile brauche ich eine variable, die immer die letzten 5 Zeichen beinhaltet.

Bisher habe ich folgenden Code:


@echo off

for /f "tokens=* delims=" %%i in ('findstr /n  $ D:\temp.txt') do @( 

echo %%i      

pause

)

Den Teilstring würde ich normalerweise mit folgendem Code bekommen:
echo %var:~-5%

Nur klappt das mit der %%i-Variable nicht.

Frage also:

Wie bekomme ich am elegantesten einen Teilstring aus %%i?

Würde mich über Antworten sehr freuen, habe schon das ganze Internet durchsucht und nichts passendes gefunden ^^"

Viele Grüße

XspYroX :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich besitze leider kein Windows (im Moment) und deswegen glaub ich, die Batch-Dateien wie du es machst kann ich nicht zum laufen bringen.

Ich hab das ganze Mal als bash-Programm ausprobiert.

Und ich glaube das tut was du willst. Vielleicht hilft dir ja der Ansatz

ausgabe.sh


#!/bin/bash


while read line; do echo ${line:(-5)} ;done < $1


./ausgabe.sh text.txt

Wenn man das dann so aufruft, bringt dir das Miniprogramm die letzten 5 Zeichen jeder Zeile der Datei auf den Bildschirm.

Ich hab auch erst vor paar Wochen mit dem Programmieren angefangen, also ich hoffe ich konnte dir vielleicht einen Anstoß in die richtige Richtung geben.

Viele Grüße aus Leipzig

Matze

Bearbeitet von HeinzM
Link zu diesem Kommentar
Auf anderen Seiten teilen


@echo off

setlocal EnableDelayedExpansion  


for /f "tokens=* delims=" %%i in ('findstr /n  $ temp.txt') do @ ( 

    set foo=%%i

    echo !foo:~-5!

)

Super, der code klappt fast.

Einziges Problem:

Die letzte Zeile aus der text-datei wird nicht eingelesen.

Wenn ich 4 zeilen in der txt habe, werden exakt 3 ausgaben gemacht bzw. nach der 3. ausgabe kommt nur eine leerzeile und das war es dann.

Kann man das auch noch fixen?

LG XspYroX

Link zu diesem Kommentar
Auf anderen Seiten teilen

alle zeilen mit inhalt müssen mit einem Enter beendet sein.

Die letzte Zeile sollte also eine Leerzeile sein. :)

Hmmm...

die txt, die ich auslesen möchte, wird automatisch genertiert. Daher habe ich darauf keinen einfluss.

Leider wird die letzte zeile eben nicht mit einem enter "bestätigt"....

Kann man das trotzdem irgendwie hinkriegen?

Wenn das nicht geht, muss ich wohl auf Visual C umsteigen. Da sollte sowas ja machbar sein.

Häte nur lieber ne batch gehabt, da kann man einfacher kleinigkeiten dran ändern :/

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann hau mittels Batch vor dem Schleifendurchlauf ein Enter-Zeichen in die Datei.


echo.>> foo.txt

Au mann, da hat es bei mir wohl ausgesetzt. Dass ich da net selbst drauf komme xD

Hat funktioniert.

Jetzt noch die Frage... Kann ich mit EINFACHEN mitteln die letzte Zeile in der txt wieder löschen lassen?

Also... Sodass ich zu beginn ein enter-zeichen in die txt haue, diese dann auslese, und danach das enter-zeichen wieder entferne?

Wenn nicht, ist es auch nicht tragisch. Gut wäre es trotzdem, wenn das möglich wäre ;)

Aber schonmal dickes Danke an euch alle :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...