Falscher Ordner wir mit ausgegeben
Hey Leute
Und zwar hab ich folgendes Problem. Ich lese einige Ordnerinhalte ein. Dabei sieht die Struktur so aus:
Ein Überordner -> in dem Ordner sind wiederrum Ordner (heißen wie folgt: 987ST, 721MN, 212ht und 121en) -> in den Ordner sind einige Sprach-Ordner (heißen wie folgt: de, en, es, fr) und in diesen Ordnern sind Dokumente, Bilder etc.
Nun zu meinem Anliegen:
Ich lese die Ordner ein, mit einer FOR Schleife und einem findstr der zuvor ausgewählten Sprache. Wenn ich jetzt aber die Sprache "en“ auswähle, wird automatisch durch findstr der Ordner 121en ausgegeben. Das findstr sucht also im Pfad nach Unterordnern und da das 121en ein "en" am Schluss hat wird der Ordner komplett ausgegeben!
Lässt sich das irgendwie vermeiden? Hab schon mit ner IF-Abfrage probiert und mit z.B. findstr /b und so. Hat alles nichts geholfen!
MfG
Und zwar hab ich folgendes Problem. Ich lese einige Ordnerinhalte ein. Dabei sieht die Struktur so aus:
Ein Überordner -> in dem Ordner sind wiederrum Ordner (heißen wie folgt: 987ST, 721MN, 212ht und 121en) -> in den Ordner sind einige Sprach-Ordner (heißen wie folgt: de, en, es, fr) und in diesen Ordnern sind Dokumente, Bilder etc.
Nun zu meinem Anliegen:
Ich lese die Ordner ein, mit einer FOR Schleife und einem findstr der zuvor ausgewählten Sprache. Wenn ich jetzt aber die Sprache "en“ auswähle, wird automatisch durch findstr der Ordner 121en ausgegeben. Das findstr sucht also im Pfad nach Unterordnern und da das 121en ein "en" am Schluss hat wird der Ordner komplett ausgegeben!
Lässt sich das irgendwie vermeiden? Hab schon mit ner IF-Abfrage probiert und mit z.B. findstr /b und so. Hat alles nichts geholfen!
MfG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 171962
Url: https://administrator.de/forum/falscher-ordner-wir-mit-ausgegeben-171962.html
Ausgedruckt am: 11.03.2025 um 05:03 Uhr
8 Kommentare
Neuester Kommentar
Und wie? VB, Batch, etc?
Und woher? Klingt nach einer Liste. Warum durchsuchst Du die Ordner nicht recursiv? Dann weißt Du gleich wo was hinkommt.
Such also nach "\121\".
Stefan.
Und woher? Klingt nach einer Liste. Warum durchsuchst Du die Ordner nicht recursiv? Dann weißt Du gleich wo was hinkommt.
Ich lese die Ordner ein, mit einer FOR Schleife und einem findstr der zuvor ausgewählten Sprache. Wenn ich jetzt aber die
Sprache "en“ auswähle, wird automatisch durch findstr der Ordner 121en ausgegeben. Das findstr sucht also im Pfad
nach Unterordnern und da das 121en ein "en" am Schluss hat wird der Ordner komplett ausgegeben!
Lässt sich das irgendwie vermeiden? Hab schon mit ner IF-Abfrage probiert und mit z.B. findstr /b und so. Hat alles nichts
geholfen!
Stell doch Deinem Suchstring ein Backslash an den Anfang und ans Ende.Sprache "en“ auswähle, wird automatisch durch findstr der Ordner 121en ausgegeben. Das findstr sucht also im Pfad
nach Unterordnern und da das 121en ein "en" am Schluss hat wird der Ordner komplett ausgegeben!
Lässt sich das irgendwie vermeiden? Hab schon mit ner IF-Abfrage probiert und mit z.B. findstr /b und so. Hat alles nichts
geholfen!
Such also nach "\121\".
Stefan.
Moin Dell-XPS,
es gibt wie im richtigen Leben mehrere Möglichkeiten, diese Prüfung einzubauen.
Du kannst sowohl findstr nutzen und
Grüße
Biber
es gibt wie im richtigen Leben mehrere Möglichkeiten, diese Prüfung einzubauen.
Du kannst sowohl findstr nutzen und
- den Suchstring ("en","fr", "de" oder "es") ändern in "^en$","^fr$", "^de$" oder "^es$" und den Unterordnernamen prüfen
- oder den String "vollständigerPfad" durchsuchen nach "\en" , "\de" etc --- denn der Pfad lautet ja z.B. "...\test\121en" oder aber "...\test\721mn\en" -> "\en" ist nur im 2.Fall gegeben
- oder aber du prüfst auf Gleichheit mit einer IF-Prüfung
for /r /d %i in (*) do @if "%~ni"=="en" echo hier bei [%i] ist ein Unterordner=en
Grüße
Biber
... oder einfach
[OT] @skye: Machst Du dafür auch einen Counter?
[/OT]
Grüße
bastla
dir /s /b /ad "D:\Überordner\en"
Grüße
bastla

Moin, Dell-XPS und willkommen im Forum.
Versuch's doch mal so:
An Stelle von \en\ dann bei Bedarf die andere gewünschte Sprache einsetzen.
Gruß
Versuch's doch mal so:
dir {LW:\Anfangspfad] /b /s | findstr /C:\en\
An Stelle von \en\ dann bei Bedarf die andere gewünschte Sprache einsetzen.
Gruß
[OT]Aloha bastla,
Hmm... bring mich nicht auf dumme Gedanken hm, dirsubfolder(?)
set "dsf+=1"
Aber mittendrin anfangen zu zählen ... call set zu finden ist einfacher *gg* und jedes Mal danach zu schauen ... anstrengend
greetz André[/OT]
Hallo Dell-XPS!
Und Du hattest tatsächlich mit
- unter der Annahme, dass %SPRACHE% zB "en" (natürlich ohne Anführungszeichen) enthält - keinen Erfolg?
Grüße
bastla
P.S.:

Und Du hattest tatsächlich mit
for /f "delims=" %%i in ('dir /s /b /ad "D:\Überordner\%SPRACHE%"') do ...
Grüße
bastla
P.S.:
ich habs inzwischen selber rausgefunden!
... dass Bibers zweiter Vorschlag - wie auch jeder seiner weiteren Ansätze - für Dich passt?