icepick1661
Goto Top

Dateiname auf vorkommen von Zeichen prüfen

Hallo,

mal wieder eine Batch-Frage von mir:

eine Schleife durchsucht Ordner/Unterordner nach Dateien.

Es werden bestimmte Parameter (z. B. Endung) gecheckt und darauf reagiert.

Das Problem: An beliebiger Stelle des Dateinamens können die Zeichen "XY" vorkommen. Wenn dies so ist, soll mit 'set do=1' eine bestimmte Routine gestartet werden.

Aber wie zur Hölle finde ich raus, ob der Dateiname diese Zeichen enthält? Selber überlegen hilft nicht (wie so oft), googeln aber leider auch nicht.

Danke für Eure Hilfe!

Jürgen

Content-Key: 576218

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

Printed on: April 27, 2024 at 03:04 o'clock

Member: falscher-sperrstatus
falscher-sperrstatus Jun 01, 2020 at 13:36:29 (UTC)
Goto Top
Dateinamen prüfen und evtl. umbenennen

Dürfte ein Ansatz sein, oder?
Mitglied: 144260
144260 Jun 01, 2020 updated at 14:34:54 (UTC)
Goto Top
@echo off
for /f "delims=" %%a in ('dir /b /s /a-d "D:\Ordner\blablub\*XY*"') do echo Tu was mit "%%a"  
Selber überlegen hilft nicht (wie so oft)
🐟 face-big-smile Ja nee, is klar ... wat für'n Stuss.
Member: icepick1661
icepick1661 Jun 01, 2020 at 15:03:37 (UTC)
Goto Top
Danke Killpid, aber leider komme ich damit nicht weiter:

Ich habe ja bereits mit einer For-Schleife eine Datei in Bearbeitung, also ein Variable %%i ist schon gefüllt. Bei diesem Dateinamen will ich prüfen, ob das "XY" darin vorkommt.

Mit deiner Schleife hab ich jetzt ein bisschen rumprobiert - sie bezieht sich aber nicht auf die Variable %%i. Die zweite Schleife läuft als Schleife in der Schleife - die letzte Klammer schließt die erste Schleife.

Danke noch Mal für deine Hilfe.
Mitglied: 144260
Solution 144260 Jun 01, 2020 updated at 15:30:29 (UTC)
Goto Top
Zitat von @icepick1661:
Ich habe ja bereits mit einer For-Schleife eine Datei in Bearbeitung, also ein Variable %%i ist schon gefüllt. Bei diesem Dateinamen will ich prüfen, ob das "XY" darin vorkommt.
Hätte einfach gereicht die zu posten ...
Mit deiner Schleife hab ich jetzt ein bisschen rumprobiert - sie bezieht sich aber nicht auf die Variable %%i. Die zweite Schleife läuft als Schleife in der Schleife - die letzte Klammer schließt die erste Schleife.
Ist doch Jacke wie Hose ob %%i oder %%a es ist nur ein unterschiedlicherBuchstabe.
Du hättest auch einfach deine Schleife posten können, aber ist ja Glaskugel-Feierdach ne....

Hier für den Content einer Schleife in der %%i die Laufvariable ist (for-Gedöhns weggelassen fehlt uns ja von dir) :
echo %%~nxi|findstr /ilc:"XY" >nul 2>&1 && (  
    echo Found XY in %%i
) || (
   echo Not found XY in %%i
)
Kannst du in deine Schleife einbauen.

Wenn du damit jetzt auch nix anfangen kannst, dann bleibt wohl nur noch das Brecheisen für das Brett...

Viel Spaß beim Eierschaukeln noch.
Member: icepick1661
icepick1661 Jun 01, 2020 at 18:47:51 (UTC)
Goto Top
Na, schlechte Laune ist auch ne Tugend - Hauptsache rumpampen, nicht wahr?

Warum soll ich die Schleife posten - die sieht aus wie dein erster Vorschlag, nur ohne "\*XY*". In deren "do (…)" hinein kam dann dein erster Vorschlag, was nicht funktionierte. Das versuchte ich mit der abweichenden Variable "%%i" zu verdeutlichen. Aber wenn man frei formulierte Prosa für so eine Banalität nicht versteht, sondern nur Code-Schnipsel...

Die zweite Lösung funktioniert. Würde ja gerne Danke sagen, kann das aber nicht in Code ausdrücken, insofern fürchte ich, dass es dich eh nicht erreicht.