Batch, Mehrere Pfade als eine Variable, diese Trennen, Pfade durchsuchen, Ergebnis als Variable speichern
Hallo liebe Gemeinde. Ich habe einen absoluten Blackout was einen kleinen Suchlauf angeht.
Die Situation ist folgende. Ich habe ein Variable "BackupDir" in der mehrere Laufwerke mit Verzeichnissen vorhanden sein können. Separator ist ein Komma. Beispiel:
Nun möchte ich folgendes bewerkstelligen:
Alle Laufwerk/Verzeichnis Pfade sollen nach einem Verzeichnis durchsucht werden. Nehmen wir als Beispiel:
Realer vorhandener Pfad:
Die Routine soll nun "C.\Backup","D:\Backup",E:\Backup" nacheinander nach dem Ordner "Rechnung_0815" durchsuchen. Der Ordner "Rechnung_0815" wird via set /p als manuelle Variable vorher festgelegt. Der Ordner existiert auch garantiert nur 1x unter einem der in Variable "BackupDir" festgelegten Pfad.
Wird das Verzeichnis gefunden (in unserem Beispiel dann unter "E:\Backup", möchte ich das E:\Backup als Variable gespeichert wird.
Ich habe leider wirklich keine Idee wo ich da überhaupt mit der for Schleife anfangen soll, geschweige denn wie ich alle Tokens (, ist der Separator) nacheinander mit einem "find" Befehl abfragen kann. Vielleicht gibt es auch eine ganz einfache Routine dafür und ich denke viel zu kompliziert.
Falls das so gar nicht möglich ist, alternativ könnte ich auch eine txt Datei anlegen, wo ich in jeder Zeile einen Pfad anlege und die txt Zeilen durchsuche. Nur wäre mir die Lösung mittels Variable lieber.
Für einen Fingerzeig wäre ich sehr dankbar. <3
Die Situation ist folgende. Ich habe ein Variable "BackupDir" in der mehrere Laufwerke mit Verzeichnissen vorhanden sein können. Separator ist ein Komma. Beispiel:
set "BackupDir=C:\Backup,D:\Backup,E:\Backup"
Nun möchte ich folgendes bewerkstelligen:
Alle Laufwerk/Verzeichnis Pfade sollen nach einem Verzeichnis durchsucht werden. Nehmen wir als Beispiel:
Realer vorhandener Pfad:
E:\Backup\Rechnung_0815
Die Routine soll nun "C.\Backup","D:\Backup",E:\Backup" nacheinander nach dem Ordner "Rechnung_0815" durchsuchen. Der Ordner "Rechnung_0815" wird via set /p als manuelle Variable vorher festgelegt. Der Ordner existiert auch garantiert nur 1x unter einem der in Variable "BackupDir" festgelegten Pfad.
Wird das Verzeichnis gefunden (in unserem Beispiel dann unter "E:\Backup", möchte ich das E:\Backup als Variable gespeichert wird.
Ich habe leider wirklich keine Idee wo ich da überhaupt mit der for Schleife anfangen soll, geschweige denn wie ich alle Tokens (, ist der Separator) nacheinander mit einem "find" Befehl abfragen kann. Vielleicht gibt es auch eine ganz einfache Routine dafür und ich denke viel zu kompliziert.
Falls das so gar nicht möglich ist, alternativ könnte ich auch eine txt Datei anlegen, wo ich in jeder Zeile einen Pfad anlege und die txt Zeilen durchsuche. Nur wäre mir die Lösung mittels Variable lieber.
Für einen Fingerzeig wäre ich sehr dankbar. <3
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 62528820137
Url: https://administrator.de/contentid/62528820137
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
2 Kommentare
Neuester Kommentar
@echo off
set "BackupDir=C:\Backup D:\Backup E:\Backup"
set /p "ordner=Ordnernamen eingeben:"
set "mybackupdir="
for %%a in (%BackupDir%) do if exist "%%a\%ordner%" set "mybackupdir=%%a"
if not defined mybackupdir (
echo Ordner nicht gefunden!
Pause
goto :eof
)
echo %mybackupdir%