qm1qm1
Goto Top

Batch variable mit findstr analysieren

hallo
ich lese aus einer txt eine variable aus
for /f "tokens=2 delims==" %%i in ('find /i "renderer=" ^< "c:\file.cfg"') do (set rend=%%i)

ich erhalte
Vray V_Ray_Adv_1_50_SP4

ich arbeite mit dieser variable in einer if else fkt.

if /i %rend% equ "Vray V_Ray_Adv_1_50_SP4" do (....

soweit so gut aber leider ist die variable zu komplex um jede denkbare kombination per equ oder == abzufragen

der einfachste weg wäre
if /i %rend% INCLUDE STRING "SP4" do (....
oder
if /i %rend% equ "*SP4" do (....

ich habe versucht die variable in eine temp.txt zu legen und dann mit findstr zu arbeiten aber
der zu suchende string kann an jeder position sein .. anfang mitte überall
ich kann also nicht "findstr /b" .. nutzen
die länge der variable ist ebenfalls nicht fix
findstr "...........SP4" würde auch nicht klappen

weis irgendwer rat ?

Content-Key: 173615

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

Ausgedruckt am: 28.03.2024 um 21:03 Uhr

Mitglied: Skyemugen
Skyemugen 23.09.2011 um 17:24:27 Uhr
Goto Top
Aloha,

ich versteh's nicht, wenn du nur prüfen willst, ob SP4 vorkommt, warum arbeitest du dann nicht einfach mit findstr "SP4"?
echo %rend% |findstr "SP4" && do (....)  

greetz André

edit:

oder noch kürzer

for /f "tokens=2 delims==" %%i in ('find /i "renderer=" ^< "c:\file.cfg" ^|findstr "SP4"') do (  
Mitglied: qm1qm1
qm1qm1 23.09.2011 um 17:38:12 Uhr
Goto Top
mmt ....
Mitglied: Biber
Biber 24.09.2011 um 16:23:12 Uhr
Goto Top
Moin qm1qm1,

willkommen im Forum.

Zitat von @qm1qm1:
mmt ....
Ich bin mir nicht sicher, ob dieses sicherlich zum Allgemeingut der Generation Facebook gehörende Akronym nun "mussich mal testen" oder "macht mich traurig" oder "many many thanks" oder "mach meinen Tag" bedeutet.

Könntest du zur abschliessenden Klarstellung bitte entweder einen götterspeisefarbenden Haken an den Beitrag setzen, falls die Antwort geholfen hat oder aber rückfragen, falls das Problem noch offen ist?

Danke
Biber

P.S. Ich habe den Beitrag verschoben nach "Batch & Shell", weil..... "Ich habe ein Problem mit Windows".... na ja, deswegen braucht niemand Beiträge erstellen.
Mitglied: bastla
bastla 24.09.2011 um 18:17:46 Uhr
Goto Top
[OT]@Biber
Als Angehöriger des aussterbenden Stammes der Optimisten hätte ich ja "makes me think" gelesen ... face-wink

Grüße
bastla
[/OT]
Mitglied: qm1qm1
qm1qm1 24.09.2011 um 18:22:59 Uhr
Goto Top
mmt heist moment und bedeutet ich teste es mal ... montag
Mitglied: Biber
Biber 24.09.2011 um 20:28:54 Uhr
Goto Top
Öhhm, qm1qm1,

Zitat von @qm1qm1:
mmt heist moment und bedeutet ich teste es mal ... montag
Ich fasse noch mal zusammen - du schreibst am Donnerstag
"ich werde die eine Zeile wohlwollend begutachten und werde mit dem Copy&Pasten eventuell Anfang nächster Woche erste Erfolge erzielen"

???!?

Ich sach ma so
  • Du kannst SOFORT bei SAP oder der Telekom anfangen als Qualitatätsmanager
  • wenn Skye deine Adresse zugespielt bekommen sollte, dann werdet ihr eventuell am Wochenende gemeinsam joggen - du vorweg
  • mmt... meide möglichst Tranquilizer

Muss Memo triggern: Montag morgen tracken
Biber

@bastla: Du bist ja immer Optimist - aber stell dir mal vor: so einer wird später dein ZiVi - und du drückst donnerstags auf''s Rufknöpfchen..
Mitglied: qm1qm1
qm1qm1 24.09.2011 um 20:42:57 Uhr
Goto Top
? raff ich den witz nicht ? Telekom skype joggen ?
Mitglied: Biber
Biber 24.09.2011 um 22:02:20 Uhr
Goto Top
Zitat von @qm1qm1:
? raff ich den witz nicht ? Telekom skype joggen ?
*seufz*
Lass die Pointe einfach langsam an dich heran einen mmt.... es teste es montag.
Mitglied: 60730
60730 24.09.2011 um 22:16:33 Uhr
Goto Top
Zitat von @Biber:
Zitat von @qm1qm1:
? raff ich den witz nicht ? Telekom skype joggen ?
*seufz*

back-to-topMontag mal testen...


Ps:
if not "Biber"=="joking" if not "joking"=="jogging" if not "Skyemugen"=="Skype" do echo MerdeMerdeTragiques  

Und sei mir nicht böse, aber etwas mehr Fantsasie wäre nicht nur bei der Nicknamenswahl angebracht.

Gruß und besser dich, wir sind eigentlich normal...
Mitglied: qm1qm1
qm1qm1 25.09.2011 um 12:24:52 Uhr
Goto Top
edit

nach dem posten kommen mir neue ideen das zu lösen

mal testen ob es klappt...


seltsam das man %rend% nicht direkt per findstr bearbeiten kann
es muss über den umweg echo geschehen.. naja
Mitglied: Biber
Biber 25.09.2011 um 13:56:48 Uhr
Goto Top
Moin qm1qm1,

der vermeintliche Umweg der Findstr-Umgebungsvariablen-Auswertung ist dadurch begründet, dass FindStr eigentlich ein Utility zur Durchsuchung von Dateien -oder genauer geöffneten Filehandles - ist.
Mit "echo %rend% und der Pipe-Anweisung "|" wird formal ein geöffnetes Handle, also quasi eine virtuell vorhandene Datei übergeben.
Mutet strange an? Ja hey! Unter Windows musst du den "Start"-Button drücken, wenn du den Rechner herunterfahren willst. face-wink Go figure.

Falls dir dieses Gezwirbele zu wenig nachvollziehbar oder zu unleserlich wirkt, dann gehe doch über den direkten Variablenvergleich.
Wenn denn in der Variablen %rend% schon ein Wert wie "Vray V_Ray_Adv_1_50_SP4" steht
>set rend
rend=Vray V_Ray_Adv_1_50_SP4
... und du wissen willst, ob die letzten 3 Zeichen nun "SP4" lauten:
>echo "%rend:~-3%"
"SP4"
>echo [im direkten IF-Vergleich] IF "%rend:~-3%"=="SP4" ... oder IF "%rend:~-3%" EQU "SP4" ...
[im direkten IF-Vergleich] IF "SP4"=="SP4" ... oder IF "SP4" EQU "SP4" ...

Mussu mal trübergucken. ,-)
Biber
Mitglied: qm1qm1
qm1qm1 25.09.2011 um 14:32:13 Uhr
Goto Top
das problem ist ja das sp4 an jeder stelle der variable stehen kann
mitte anfange ende - die länge der var. ist auch variable

ein einfacher wildcard support ist ja zuviel verlangt ....

das mit dem echo und find wird schon klappen - da ist mir aber das wochenede zu schade für um das einzuarbeiten

frage nebenbei
wird beim einsatz von | schrit für schritt abgearbeitet oder wird die ganze zeile "als eins "behandelt ?


ps
da keine 3 buchstaben bei username erlaubt sind verdoppel ich
Mitglied: Biber
Biber 25.09.2011 um 14:57:17 Uhr
Goto Top
Moin qm1qm1,

Zitat von @qm1qm1:

ein einfacher wildcard support ist ja zuviel verlangt ....
Stimmt. Der Erfolg von Windows ist ausschliesslich in genialem Marketing begründet, nicht in der Produktqualität.face-wink

frage nebenbei
Eine der Formulierungen, um sich im Bereich "Batch & Shell" neue Freunde zu verschaffen...

wird beim einsatz von | schrit für schritt abgearbeitet oder wird die ganze zeile "als eins "behandelt ?
Natürlich! Auf jeden Fall.

Genauer geschrieben: Letzteres.

da keine 3 buchstaben bei username erlaubt sind verdoppel ich
Nicht mal ich hätte einen Sprachfehler unterstellt.

Grüße
Biber