Batch - (Vorderen) String erhalten (String abschneiden II)

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

02.01.2021, aktualisiert 10:41 Uhr, 504 Aufrufe, 13 Kommentare

Den genialen Vorschlag von Bastla Batch - String abschneiden würde ich gerne noch einmal aufgreifen und wissen, wie der vordere Teil eines Strings erhalten bleiben kann, sprich, nach einem : den hinteren Teil abzuschneiden (samt : :-) face-smile).

Mein Problem ist diese Variable, aus der ich die Zeilennummer (mal 1, mal 2-stellig) extrahieren möchte (wobei die Pfade ebenfalls variabel sind):

D:\batches\temp>set variable=test.txt:19:D:\batches\temp>set
oder so
D:\batches\temp>set variable=test.txt:7:D:\batches\temp>set

Nach Bastlas Version bleibet übrig:
19:D:\batches\temp>set
oder so:
7:D:\batches\temp>set

Hier noch einmal sein Code:
Wie gelingt es, den hinteren Teil nach einem : abzuschneiden? So jedenfalls nicht:
Mitglied: 147069
147069 (Level 1)
02.01.2021, aktualisiert um 12:04 Uhr
Für sowas nimmst du einfach gleich nen For-Loop
Solltest du dir mal in einer ruhigen Stunde rein ziehen, dann sind 99% deiner Fragen hier obsolet ;-) face-wink
Tutorial zur FOR-Schleife
Bitte warten ..
Mitglied: OKIDOKI
02.01.2021 um 11:39 Uhr
bluewonder vielen Dank!

Den Beitrag kannte ich noch gar nicht, dieses Forum ist einfach SPITZENKLASSE.

Eine Anmerkung hätte ich dennoch, nach Durchsicht deines verlinkten Beitrags.
Vielleicht die fehlenden 1% :-) face-smile

Müsste es nicht vielmehr lauten:
Also tokens=2 durch 1 ersetzen?
Ansonsten bleibt, zumindest in meinem Bespiel, nur das D übrig!
Bitte warten ..
Mitglied: 147069
147069 (Level 1)
02.01.2021, aktualisiert um 12:23 Uhr
Zitat von OKIDOKI:
Eine Anmerkung hätte ich dennoch, nach Durchsicht deines verlinkten Beitrags.
Vielleicht die fehlenden 1% :-) face-smile
Nein. Der Code s wie er oben steht läuft einwandfrei!
Müsste es nicht vielmehr lauten:
Also tokens=2 durch 1 ersetzen?
Nein, du willst ja die Zahl haben und die ist nunmal an zweiter Stelle! Token 1 wäre test.txt und Token 2 ist 7. Works as designed ;-) face-wink.
Ansonsten bleibt, zumindest in meinem Bespiel, nur das D übrig!
Dann hast du schon den ersten Teil abgeschnitten ich gehen davon aus das in der Variablen der Dateiname noch enthalten ist :-) face-smile. Einfach Bastlas Sachen weglassen und nur die For-Schleife nutzen, die macht es all in one ohne weitere nötigen Maßnahmen.
Guckst du einfach mal genau in meinen Code und was da steht ....
set "string=test.txt:7:D:\batches\temp"
Bitte warten ..
Mitglied: OKIDOKI
02.01.2021, aktualisiert um 13:45 Uhr
Hey bluewonder, vielen Dank!
Ja, stimmt, haut hin!

Trotzdem komme ich jetzt nach dem "Zusammenbau" ins Schlingern:

Frage Batch: String in Variable gibt es leider (noch) keine Lösung, wobei ich dachte, eine einfache zu haben.

Problem:
Textdatei > Suchwort lokalisieren > Zeile auslesen

Soweit habe ich das Suchwort finden können mit Kennzeichnung der Zeile. Nun ging es hier weiter mit Zeilennummer auslesen und dann entsprechend Zeile in Variable schreiben - fertig! Hört sich irgendwie einfach an, treibt mich aber schier zur Verzweiflung ...

Hier mein bisheriges Ergebnis, wobei plötzlich die Zeilennummer in der Variablen fehlt:
btw: in der test.txt steht immer nur in jeden 2. Zeile etwas!

Hast du (jemand) eine Idee, woran es jetzt noch haken könnte?
Bitte warten ..
Mitglied: 147069
147069 (Level 1)
LÖSUNG 02.01.2021, aktualisiert um 15:15 Uhr
Ach gottchen das ist doch völliger Murks :-D face-big-smile. Das geht viel einfacher, in der Powershell hast du nämlich eine Property für die Zeilennnummer auf die du direkt zugreifen kannst, da braucht man keine Strings parsen ... Powershell arbeitet mit Objekten und nicht primär wie in Batch mit Strings, guckst du unten das Bild ;-) face-wink
Brauchst du statt der Zeilennummer den Inhalt der Zeile, einfach die Property durch Line austauschen
screenshot - Klicke auf das Bild, um es zu vergrößern

Feddisch.
Bitte warten ..
Mitglied: mayho33
02.01.2021 um 15:43 Uhr
Zitat von 147069:

Für sowas nimmst du einfach gleich nen For-Loop
Solltest du dir mal in einer ruhigen Stunde rein ziehen, dann sind 99% deiner Fragen hier obsolet ;-) face-wink
Tutorial zur FOR-Schleife


Dafür, dass du -wie du sagst- kein geübter Tutorialschreiber bis, ist es aber sehr gut gelungen!

Grüße!
Bitte warten ..
Mitglied: mayho33
02.01.2021 um 15:47 Uhr
Zitat von 147069:

Ach gottchen das ist doch völliger Murks :-D face-big-smile. Das geht viel einfacher, in der Powershell...
Feddisch.

Ich würde ja auch sofort auf PS zurückgreifen. Batch ist für mich ein rotes Tuch. Aber manche wollen das halt so. Sollte man respektieren.

Grüße!
Bitte warten ..
Mitglied: 147069
147069 (Level 1)
02.01.2021, aktualisiert um 16:49 Uhr
Zitat von mayho33:
Ich würde ja auch sofort auf PS zurückgreifen. Batch ist für mich ein rotes Tuch. Aber manche wollen das halt so. Sollte man respektieren.
Habe ich ja, das obige ist Batch nur eben mit etwas PS gewürzt wie er es auch in seinem anderen Post ja auch schon macht :-) face-smile.
Bitte warten ..
Mitglied: OKIDOKI
02.01.2021 um 18:57 Uhr
Über einfache Lösungen würde ich mich SO freuen, daher vielen Dank an bluewonder und mayho33!

Klar, Batch ist alt und bäh, dennoch habe ich meinen Hauptcode im Batch - lässt sich jetzt so ohne Weiteres (non profit) auch nicht ändern.
Ich finde es trotzdem irre, dass sich eben auch powershell integrieren lässt ...

Daher jetzt noch meine Anschlussfrage (vermutlich auch Murks):
Wie bekomme ich die Variabel in Batch über geben? also, aus PS ... funktionieren tut es SUPER, wie an der Console zu sehen ist ...
Bitte warten ..
Mitglied: 147069
147069 (Level 1)
02.01.2021, aktualisiert um 19:34 Uhr
Zitat von OKIDOKI:

Über einfache Lösungen würde ich mich SO freuen, daher vielen Dank an bluewonder und mayho33!
Lösung steht doch schon oben, wie oft denn noch???
Klar, Batch ist alt und bäh, dennoch habe ich meinen Hauptcode im Batch - lässt sich jetzt so ohne Weiteres (non profit) auch nicht ändern.
Ich finde es trotzdem irre, dass sich eben auch powershell integrieren lässt ...

Daher jetzt noch meine Anschlussfrage (vermutlich auch Murks):
Wie bekomme ich die Variabel in Batch über geben? also, aus PS ... funktionieren tut es SUPER, wie an der Console zu sehen ist ...
Öhm schau dir den Code doch mal genau an das ist schon Batchcode sogar zwei Varianten je nachdem was du brauchst, einfach das @echo durch ein set ersetzen und fertig, was gibbet daran jetzt nicht zu verstehen??
Meine Güte, einfach mal dat Ding da auf dem Hals ab und zu auch benutzen wofür es geschaffen wurde 🤔
Bitte warten ..
Mitglied: OKIDOKI
02.01.2021, aktualisiert um 20:11 Uhr
:-) face-smile Bitte nicht böse sein ....
Das Problem ist, glaube ich, dass es mehrere Funde gibt. Daher ist mir unklar. wie ich an die passenden Variablen komme:
Mit deinem zweiten Code werden die Zeilen wunderbar und super korrekt ausgegeben, also alles tutti :-) face-smile, aber wie arbeite ich mit den mehreren Variablen?
Wird die Variable aufgerufen steht hinter dem Inhalt witzigerweise: ...>if

Ich freue mich so über die Möglichkeiten! Für einen Einsteiger ein erhebendes Gefühl, kann ich dir sagen! Gerade in diesem Jahr möchte ich mich schon über Kleinigkeiten freuen ... Danke euch!!!

PS: Klar, echo durch set ersetzen (icon Brett vor'm Kopf)
Bitte warten ..
Mitglied: 147069
147069 (Level 1)
LÖSUNG 02.01.2021, aktualisiert um 22:43 Uhr
Daher ist mir unklar. wie ich an die passenden Variablen komme:
Brauchst du gar nicht einfach im For Loop passend verarbeiten dann sind Variablen Schall und Rauch und überflüssig ... Denn mit %%a hast du schon deine Variable auch mehrfach hintereinander

Brauchst du wirklich ne extra Variable in der Schleife dann
Und jetzt komm mir bloß nicht mit "warum nutzt du statt Prozentzeichen Ausrufezeichen?" Lies das obige verlinkte Tutorial zur For-Schleife dann verstehst du es.

Icke bin jetzt raus.
Bitte warten ..
Mitglied: OKIDOKI
02.01.2021, aktualisiert um 23:48 Uhr
Ihr Lieben, vielen Dank mayho33 und bluewonder, besonders auch für eure Geduld mit mir!
Eure Lösungen sind flexibel und genauso, wie ich sie brauche. Außerdem bieten sie Raum zum weiteren Probieren.
Ich hoffe, diese Beispiele helfen auch denen, deren Hilferufen ich oft begegnet bin.

Dieses Forum hat in seiner Qualität in den Jahren mit Abstand zugelegt - Danke dafür!
okidoki
Bitte warten ..
Heiß diskutierte Inhalte
Windows Server
Lizenzrecht Microsoft HILFE!!!!
gelöst tAmtAm44Vor 18 StundenFrageWindows Server26 Kommentare

Guten Abend liebe Community, ich bin vor kurzen bei uns in der Firma für den Vertrieb unsere MS Lizenzen auserwählt worden. Leider habe ich ...

Netzwerke
Windows 10 - Netzwerk Speedlimit?
alwayshungryVor 1 TagFrageNetzwerke17 Kommentare

Hallo, ich bin noch neu hier und hoffe, dass ihr mir helfen könnt. Gibt es eine Limitierung für Windows 10 bei der Netzwerkgeschwindigkeit? Leider ...

DNS
Domain überkleben
IT-EinsteigerVor 1 TagFrageDNS3 Kommentare

Guten Morgen, Ich habe mir einen WebSpace angemietet. Dieser läuft bspw. über die Domain storage.dienstleister.de. Jetzt ist das kein schöner Name und ich hätte ...

Datenschutz
Ist Microsoft Office 365 grds. nicht DSGVO-konform?
imebroVor 20 StundenFrageDatenschutz31 Kommentare

Hallo, in einem anderen Thread hatte man mir als Alternative zum Analysetool "Tableau" das Programm "PowerBI" empfohlen, welches ich dann auch gekauft habe. Da ...

Festplatten, SSD, Raid
WD RED PRO Festplatte als "Recertified" und "white" gelabelt
gelöst Torsten2010Vor 1 TagFrageFestplatten, SSD, Raid5 Kommentare

Hallo, ich wollte heute die Firmen QNAP Nas mit neuen Festplatten bestücken. Beim Auspacken fiel mir sofort auf, das die Festplatten weiß gelabelt sind ...

Groupware
Anfängerfrage zu Teams, wie kann ich mit einer externen Person chatten?
StefanKittelVor 1 TagFrageGroupware7 Kommentare

Hallo, ich habe mal eine Anfängerfrage zur MS Teams. Ich habe einen M365 Business Basic Account mit meiner Domäne. Ich habe einen User mit ...

Windows 10
Inaccessible boot device bei Windows 10
jensgebkenVor 1 TagFrageWindows 1014 Kommentare

Hallo Gemeinschaft, habe Probleme bei einem Windows 10 Pro PC beim Start - blue screen mit inaccessible boot device habe folgendes probiert - automatische ...

SAN, NAS, DAS
FritzBox NAS - Hochladen von großen Dateien geht nicht
emeriksVor 1 TagFrageSAN, NAS, DAS14 Kommentare

Hi, (Habe die Kategorie "SAN, NAS, DAS" genommen, obwohl nicht 100% zutreffend.) Ich habe am Wochenende versucht bei einem Kumpel in der Ferne eine ...