Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Vergleich zweier Laufzeitvariablen

Frage Entwicklung Batch & Shell

Mitglied: 3xplor3r

3xplor3r (Level 1) - Jetzt verbinden

14.12.2011 um 09:56 Uhr, 2946 Aufrufe, 3 Kommentare

Hallo,

ich habe einen Fall bei dem ich im Moment nicht mehr weiter weiß. Zuerst das Coding also Ausschnitt.

01.
[...] 
02.
for /r "%download%" %%i in (*.mp3) do ( 
03.
  for /f "tokens=1-9* delims=\" %%j in ("%%i") do ( 
04.
    if exist "%tag%\pfad.txt" ( 
05.
      for /f "tokens=* usebackq" %%t in ("%tag%\pfad.txt") do ( 
06.
        if %%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r==%%t ( 
07.
          echo 1 > "%tag%\schalter.txt" 
08.
09.
10.
11.
	 
12.
  if not exist "%tag%\schalter.txt" ( 
13.
    echo %%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r >> "%tag%\pfad.txt" 
14.
15.
[...]
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
Mitglied: Skyemugen
14.12.2011 um 10:42 Uhr
Aloha,

also mich wundert, dass bei
01.
if %%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r==%%t
nicht die Fehlermeldung kommt:
Dateien\Musik\Workarea\Workspace\Download\Album1==C:\Dokumente ist syntaktisch an dieser Stelle nicht verarbeitbar.
nichtsdestotrotz würde ich
01.
if /i "%%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r"=="%%t"
verwenden

wobei würde statt
"%%j\%%k\%%l\%%m\%%n\%%o\%%p\%%q\%%r" nicht auch "%%~dpi" genügen?

greetz André
Bitte warten ..
Mitglied: 60730
14.12.2011 um 10:43 Uhr
moin,

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.
Bitte warten ..
Mitglied: 3xplor3r
14.12.2011 um 10:47 Uhr
Danke Euch beiden für Eure Antworten. Ich werde gleich mal beide Antworten erwidern.

Zu beiden Antworten kann ich sagen: Geht nicht, aber eins nach dem anderen.

Die Anfürungszeichen hatte ich auch schon gesetzt, ohne Erfolg. Dann hatte ich mir beide Variablen mal ausgegeben und festgestellt, dass diese zumindest in der Console gleich sind.

Darauf hin kam mir die Idee mit der Variablenverzögerung, obwohl ich sagen muss, dass ich die Funktionsweise noch nicht ganz verstanden habe. Auch hier kein Erfolg und selbe Textdatei wie vorher.

LG
3x
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch vergleich von zwei dateien
gelöst Frage von realdavegerBatch & Shell6 Kommentare

Hallo, nach Jahrelangem zugucken, habe ich jetzt schlussendlich eine Frage welche ich selbst stelle. Ich versuche 2 zeiten aus ...

Batch & Shell
Vergleich einer Zeichenfolge in zwei Dateinamen
Frage von hongziehongBatch & Shell3 Kommentare

Hallo zusammen, ich möchte den Inhalt (ich weiß nicht, ob Variable das richtige Wort dafür wäre) zweier Dateinamen jeweils ...

Batch & Shell
Powershell zwei Ordner vergleichen
gelöst Frage von Rabauke84Batch & Shell2 Kommentare

Hallo zusammen, ich hab folgendes Problem: Unter meinem Profilordner (oberste Ebene) gibt es ca 140 Ordner mit den Namen ...

Batch & Shell
Zwei Werte vergleichen in einer Batch-Datei
gelöst Frage von PatrickHeissi10Batch & Shell1 Kommentar

Ich möchte die beiden Variablen %eins% und %zwei% vergleichen haben diese den gleichen Wert haben-> goto einszwei Danke

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 8 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 15 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 104 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless18 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...