Vergleich zweier Laufzeitvariablen
Hallo,
ich habe einen Fall bei dem ich im Moment nicht mehr weiter weiß. Zuerst das Coding also Ausschnitt.
Die erste Schleife geht die Verzeichnisse ab dem %download%-Verzeichnis durch. Die zweite Schleife ist zum Splitten des Pfades aus der ersten Schleife. Dann prüfe ich, ob die Textdatei "pfad.txt" bereits vorhanden ist. Wenn nicht gehts mit der Prüfung weiter, ob die schalter.txt vorhanden ist. Wenn nicht, wird der erste Pfad bis zum vorletzten Ordner in die Textdatei "pfad.txt" geschrieben.
Jetzt gehts nochmal den gleichen Weg entlang, in der Textdatei "pfad.txt" steht jetzt ein Eintrag. Der nächste zu verarbeitende Datensatz ist nicht gleich. Folgerichtig geht er bei der zweiten Prüfung if %%j%%k ... ==%%t zur nächsten Prüfung.
Es kommt allerdings beim dritten Durchlauf der Moment, wo der Elefant ins Wasser rennt. Es stehen zwei Einträge in der Textdatei "pfad.txt", die beide ungleich sind. Jetzt kommt der nächste zu verarbeitende Datensatz, der gleich dem letzten, also zweiten Datensatz in der Textdatei ist, und bei der Prüfung if %%j%%k ... ==%%t wird ebenfalls keine Übereinstimmung gefunden. Warum?
Hier noch der Inhalt der Textdatei "pfad.txt" nach einem Durchlauf, also drei Datensätzen.
Den dritten Eintrag dürfte es bei erfolgreicher Durchführung nicht geben. Sinn dahinter ist, dass ich keine Duplikate in der Textdatei möchte. Man könnte jetzt nachträglich alle Duplikate entfernen, aber warum entfernen, wenn man schon beim Einfügen auschließen kann.
LG
3x
ich habe einen Fall bei dem ich im Moment nicht mehr weiter weiß. Zuerst das Coding also Ausschnitt.
[...]
for /r "%download%" %%i in (*.mp3) do (
for /f "tokens=1-9* delims=\" %%j in ("%%i") do (
if exist "%tag%\pfad.txt" (
for /f "tokens=* usebackq" %%t in ("%tag%\pfad.txt") do (
if %%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r==%%t (
echo 1 > "%tag%\schalter.txt"
)
)
)
if not exist "%tag%\schalter.txt" (
echo %%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r >> "%tag%\pfad.txt"
)
[...]
Die erste Schleife geht die Verzeichnisse ab dem %download%-Verzeichnis durch. Die zweite Schleife ist zum Splitten des Pfades aus der ersten Schleife. Dann prüfe ich, ob die Textdatei "pfad.txt" bereits vorhanden ist. Wenn nicht gehts mit der Prüfung weiter, ob die schalter.txt vorhanden ist. Wenn nicht, wird der erste Pfad bis zum vorletzten Ordner in die Textdatei "pfad.txt" geschrieben.
Jetzt gehts nochmal den gleichen Weg entlang, in der Textdatei "pfad.txt" steht jetzt ein Eintrag. Der nächste zu verarbeitende Datensatz ist nicht gleich. Folgerichtig geht er bei der zweiten Prüfung if %%j%%k ... ==%%t zur nächsten Prüfung.
Es kommt allerdings beim dritten Durchlauf der Moment, wo der Elefant ins Wasser rennt. Es stehen zwei Einträge in der Textdatei "pfad.txt", die beide ungleich sind. Jetzt kommt der nächste zu verarbeitende Datensatz, der gleich dem letzten, also zweiten Datensatz in der Textdatei ist, und bei der Prüfung if %%j%%k ... ==%%t wird ebenfalls keine Übereinstimmung gefunden. Warum?
Hier noch der Inhalt der Textdatei "pfad.txt" nach einem Durchlauf, also drei Datensätzen.
C:\Dokumente und Einstellungen\benutzername\Eigene Dateien\Musik\Workarea\Workspace\Download\Album1
C:\Dokumente und Einstellungen\benutzername\Eigene Dateien\Musik\Workarea\Workspace\Download\Album2
C:\Dokumente und Einstellungen\benutzername\Eigene Dateien\Musik\Workarea\Workspace\Download\Album2
Den dritten Eintrag dürfte es bei erfolgreicher Durchführung nicht geben. Sinn dahinter ist, dass ich keine Duplikate in der Textdatei möchte. Man könnte jetzt nachträglich alle Duplikate entfernen, aber warum entfernen, wenn man schon beim Einfügen auschließen kann.
LG
3x
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 177671
Url: https://administrator.de/forum/vergleich-zweier-laufzeitvariablen-177671.html
Ausgedruckt am: 09.03.2025 um 20:03 Uhr
3 Kommentare
Neuester Kommentar
Aloha,
also mich wundert, dass bei
nicht die Fehlermeldung kommt:
verwenden 
wobei würde statt
greetz André
also mich wundert, dass bei
if %%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r==%%t
Dateien\Musik\Workarea\Workspace\Download\Album1==C:\Dokumente ist syntaktisch an dieser Stelle nicht verarbeitbar.
nichtsdestotrotz würde ichif /i "%%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r"=="%%t"
wobei würde statt
"%%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r"
nicht auch "%%~dpi"
genügen?greetz André

moin,
lass mich raten setlocal enabledelayedexpansion gehört nicht zu dem ausgeblendeten Teil des Scripts.
Gruß
edit:
@ André
ich vermute, in Zeile einz ist eine Kombination von €cho und dem Namen der ersten Band von Sven Väth.
Vergleich zweier Laufzeitvariablen
lass mich raten setlocal enabledelayedexpansion gehört nicht zu dem ausgeblendeten Teil des Scripts.
Gruß
edit:
@ André
ich vermute, in Zeile einz ist eine Kombination von €cho und dem Namen der ersten Band von Sven Väth.