Ordnernamen mit teilweise unbekannten Zeichen finden
Hallo liebe Usergemeinde,
Ich (Level Anfänger) möchte gerne per Batch Ordnernamen mit teilweise unbekannten Zeichen finden und diesen Namen einer Variablen zuweisen.
Folgende Situation:
Ein übergeordneter Ordner (Name bekannt) enthält mehrere Unterordner mit unbekannter Anzahl. Der aktuell gültige Ordner beginnt mit einer 2-stelligen Zahl, gefolgt von einem Unterstrich und einem Zeitstempel (JJJJ.MM.TT._HH.MM.SS). Das sieht dann in etwa so aus: "20_2018.09.09._21.43.30". Die erste 2-stellige Zahl ist bekannt (ist die Nummer einer Stückliste). Die weiteren Ordner, die sich in dem übergeordneten Ordner befinden heißen wie folgt: 2-stellige Zahl, gefolgt von einem Unterstrich und einem Zeitstempel (JJJJ.MM.TT._HH.MM.SS), gefolgt von einem Punkt und dem Wort old. Beispiel: "20_2018.09.07._19.33.35.old".
Ich dachte eventuell mit dir die vorhandenen Ordner auflisten und temporär in eine Datei schreiben. Und dann in der Datei nach einem Namen suchen, der nicht ".old" enthält.
Vielen Dank schon mal für Eure Gedanken und Bemühungen
Gruß Peter
Ich (Level Anfänger) möchte gerne per Batch Ordnernamen mit teilweise unbekannten Zeichen finden und diesen Namen einer Variablen zuweisen.
Folgende Situation:
Ein übergeordneter Ordner (Name bekannt) enthält mehrere Unterordner mit unbekannter Anzahl. Der aktuell gültige Ordner beginnt mit einer 2-stelligen Zahl, gefolgt von einem Unterstrich und einem Zeitstempel (JJJJ.MM.TT._HH.MM.SS). Das sieht dann in etwa so aus: "20_2018.09.09._21.43.30". Die erste 2-stellige Zahl ist bekannt (ist die Nummer einer Stückliste). Die weiteren Ordner, die sich in dem übergeordneten Ordner befinden heißen wie folgt: 2-stellige Zahl, gefolgt von einem Unterstrich und einem Zeitstempel (JJJJ.MM.TT._HH.MM.SS), gefolgt von einem Punkt und dem Wort old. Beispiel: "20_2018.09.07._19.33.35.old".
Ich dachte eventuell mit dir die vorhandenen Ordner auflisten und temporär in eine Datei schreiben. Und dann in der Datei nach einem Namen suchen, der nicht ".old" enthält.
Vielen Dank schon mal für Eure Gedanken und Bemühungen
Gruß Peter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 386000
Url: https://administrator.de/contentid/386000
Ausgedruckt am: 23.11.2024 um 14:11 Uhr
3 Kommentare
Neuester Kommentar
Moin Peter,
schau Dir mal folgendes an:
In Zeile 3 musst Du Dein Basisverzeichnis eintragen.
Für jedes Verzeichnis wird das Unterprogramm
Siehe auch mein Tutorial zur FOR-Schleife.
Grüße
Friemler
schau Dir mal folgendes an:
@echo off & setlocal
set "BaseDir=."
for /d %%a in ("%BaseDir%\20_????.??.??._??.??.??") do (
call :ProcessDir "%%~a"
)
exit /b 0
:ProcessDir
set "CurDir=%~1"
echo %CurDir%
exit /b 0
In Zeile 3 musst Du Dein Basisverzeichnis eintragen.
Für jedes Verzeichnis wird das Unterprogramm
ProcessDir
aufgerufen und als erstes Argument ein Verzeichnispfad übergeben. Innerhalb des Unterprogramms kann der Pfad über %~1
angesprochen und/oder einer normalen Variable zugewiesen werden. Innerhalb der FOR
-Schleife des Hauptprogramms würde das so nicht funktionieren, dazu wäre die Aktivierung und Benutzung von verzögerter Variablenerweiterung notwendig.Siehe auch mein Tutorial zur FOR-Schleife.
Grüße
Friemler