Variable mit Dateiinhalt vergleichen
Hallo zusammen,
ich bin neu in meinem Unternehmen und muss ein Problem lösen. Ich habe bereits im Forum gesucht, aber leider nichts passendes gefunden.
Ich muss in unterschiedlichen Verzeichnissen nach vorhandenen .txt Dateien suchen und wenn vorhanden, den ganzen Ordner wegkopieren.
Der Zielordner ist nicht immer gleich dem Quellordner. Nun kommt folgende Aufgabe hinzu. Wenn eine .txt Datei vorhanden ist, soll ich
in einer von Hand angelegten Datei nachschauen, ob es für den Ordner einen anderen Zielordner gibt als den vorhandenen Namen.
Wie kann ich nun überprüfen ob der Inhalt meiner Variablen (dateiornder) in der Datei vorkommt und wenn ja, dann den Wert nach dem Leerzeichen
auslesen, und als Verzeichnis anlegen?
Diese vorgehensweise ist erforderlich, weil es sich hierbei um eine Anwendung handelt, bei der man den Zielordner nicht ändern darf.
Kann mir jemand helfen? Ich wäre euch echt dankbar.
Gruß Socca07
ich bin neu in meinem Unternehmen und muss ein Problem lösen. Ich habe bereits im Forum gesucht, aber leider nichts passendes gefunden.
Ich muss in unterschiedlichen Verzeichnissen nach vorhandenen .txt Dateien suchen und wenn vorhanden, den ganzen Ordner wegkopieren.
Der Zielordner ist nicht immer gleich dem Quellordner. Nun kommt folgende Aufgabe hinzu. Wenn eine .txt Datei vorhanden ist, soll ich
in einer von Hand angelegten Datei nachschauen, ob es für den Ordner einen anderen Zielordner gibt als den vorhandenen Namen.
Wie kann ich nun überprüfen ob der Inhalt meiner Variablen (dateiornder) in der Datei vorkommt und wenn ja, dann den Wert nach dem Leerzeichen
auslesen, und als Verzeichnis anlegen?
Diese vorgehensweise ist erforderlich, weil es sich hierbei um eine Anwendung handelt, bei der man den Zielordner nicht ändern darf.
Kann mir jemand helfen? Ich wäre euch echt dankbar.
Gruß Socca07
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 117273
Url: https://administrator.de/forum/variable-mit-dateiinhalt-vergleichen-117273.html
Ausgedruckt am: 19.05.2025 um 16:05 Uhr
10 Kommentare
Neuester Kommentar

Moin moin,
Wenn du sicher bist, das in den Pfaden selbst kein Leerzeichen vorkommen kann, kein Problem.
So eine Lookupliste lässt sich leicht mit for und find realisieren. ( und es gibt mit Sicherheit auch Beispiele dafür)
Wenn der gesuchte DateiOrdner aber als neuer Zielpfad einer anderen Paarung in der Liste stehen kann, ist etwas mehr Aufwand notwendig.
Gruß
LotPings
Edit Den Listentrenner Leerzeichen an den Suchbegriff angehängt damit nur der "linke" Teil gesucht wird.
Ich muss in unterschiedlichen Verzeichnissen nach vorhandenen .txt Dateien suchen und wenn vorhanden, den ganzen Ordner wegkopieren.
Der Zielordner ist nicht immer gleich dem Quellordner.
Ähh, den Satz solltest du vielleicht nochmal erklären.Der Zielordner ist nicht immer gleich dem Quellordner.
Nun kommt folgende Aufgabe hinzu. Wenn eine .txt Datei vorhanden ist, soll ich in einer von Hand angelegten Datei nachschauen, ob es für den Ordner einen anderen Zielordner gibt als den vorhandenen Namen.
Wie kann ich nun überprüfen ob der Inhalt meiner Variablen (dateiornder) in der Datei vorkommt und wenn ja, dann den Wert nach dem Leerzeichen
auslesen, und als Verzeichnis anlegen?Wenn du sicher bist, das in den Pfaden selbst kein Leerzeichen vorkommen kann, kein Problem.
So eine Lookupliste lässt sich leicht mit for und find realisieren. ( und es gibt mit Sicherheit auch Beispiele dafür)
Diese vorgehensweise ist erforderlich, weil es sich hierbei um eine Anwendung handelt, bei der man den Zielordner nicht ändern darf.
set DateiOrdner=C:\Test
for /F "Tokens=1,*" %%A in ('Find /i "%DateiOrdner% " HandListe.txt ') Do Set "DateiOrdner=%%B"
Wenn der gesuchte DateiOrdner aber als neuer Zielpfad einer anderen Paarung in der Liste stehen kann, ist etwas mehr Aufwand notwendig.
Gruß
LotPings
Edit Den Listentrenner Leerzeichen an den Suchbegriff angehängt damit nur der "linke" Teil gesucht wird.

Zitat von @Socca07:
Irgendwie klappt es nicht. Ich versuche dir zu zeigen, was ich meine.
Dateiname test.txt
quellordner zielordner
In meinem Beispiel (das sehr wohl nach deinen zuerst gemachten Angaben funktioniert) ist dies die Datei Handliste.txtIrgendwie klappt es nicht. Ich versuche dir zu zeigen, was ich meine.
Dateiname test.txt
quellordner zielordner
Zuerst durchsuche ich eine unbestimmte Anzahl an Ordnern nach einer .txt. Sobald eine solche Datei in einem Unterverzeichnis vorhanden ist, muss ich den Verzeichnisnamen (in dem die .txt liegt) mit dem Inhalt der test.txt vergleichen. Wenn als Quellordner dieser Name erscheint, wird der Inhalt in den Zielordner aus der .txt geschrieben. Wenn nicht, wird der Quellordner als Zielordner angelegt.
Ja, das ist mir auch alles klar, aber wie du diesen Luft-Code tatsächlich ausführst hast du nicht gepostet - daher kann ich dazu auch keine Stellung nehmen.Die Namen der Quell- und Zielordner sind immer mit einem Space getrennt. Ich hoffe ich konnte es ein bisschen verständlich machen.
Nicht wirklich. Poste deinen bisherigen Code.Gruß
LotPings
Moin Socca07,
ich habe mich jetzt, nachdem ich den gesamten Threadverlauf nochmal nachvollzogen habe, nach reiflicher Überlegung dazu durchgerungen dir zu antworten.
An LotPings' Stelle würde ich wohl nicht antworten - der ist wahrscheinlich zu dem Schluss gekommen, dass er fruchtbarere Dialoge mit einem Harzer Käse oder einem Milchaufschäumer führen kann als mit manchen Fragestellern.
Wozu fragst du denn hier im Forum etwas, wenn dir das Thema vollkommen Wurscht ist und du in 5 Monaten keine 5 Minuten lang schaffst, dich mit dem Problem auseinanderzusetzen?
Deinen so genannten "Was ich bis jetzt habe"-Schnipsel solltest du deinen Cheffes lieber nicht zeigen. Gib es den Hasen oder steck es dahin wo du auch LotPings Ratschläge gelagert hast.
Mach diesen Quatsch hier...
..vom CMD-Prompt aus mit dieser Zeile:
...wobei du "WEG" ggf. noch spezifizieren solltest, falls deine Cheffes dir mitteilen, WTF denn "soll der gesamte Ordener in dem die Datei liegt wegkopiert werden." bedeuten soll.
Mach einen Haken dran, wenn fertig.
Grüße
Biber
ich habe mich jetzt, nachdem ich den gesamten Threadverlauf nochmal nachvollzogen habe, nach reiflicher Überlegung dazu durchgerungen dir zu antworten.
An LotPings' Stelle würde ich wohl nicht antworten - der ist wahrscheinlich zu dem Schluss gekommen, dass er fruchtbarere Dialoge mit einem Harzer Käse oder einem Milchaufschäumer führen kann als mit manchen Fragestellern.
Wozu fragst du denn hier im Forum etwas, wenn dir das Thema vollkommen Wurscht ist und du in 5 Monaten keine 5 Minuten lang schaffst, dich mit dem Problem auseinanderzusetzen?
Deinen so genannten "Was ich bis jetzt habe"-Schnipsel solltest du deinen Cheffes lieber nicht zeigen. Gib es den Hasen oder steck es dahin wo du auch LotPings Ratschläge gelagert hast.
Mach diesen Quatsch hier...
im Verzeichnis d:\daten gibt es eine unbestimmte Anzahl an Verzeichnissen.
In jedem dieser Verzeichnisse gibt es wieder eine unbestimmte Anzahl von Verzeichnissen
und in manchen dieser Verzeichnisse liegt dann eine Datei mit der Endung txt,
wenn eine solche Datei vorhanden ist,soll der gesamte Ordener in dem die Datei liegt wegkopiert werden.
In jedem dieser Verzeichnisse gibt es wieder eine unbestimmte Anzahl von Verzeichnissen
und in manchen dieser Verzeichnisse liegt dann eine Datei mit der Endung txt,
wenn eine solche Datei vorhanden ist,soll der gesamte Ordener in dem die Datei liegt wegkopiert werden.
..vom CMD-Prompt aus mit dieser Zeile:
for /r "D:\Daten" /d %i in (*) do if exist "%i\*.txt" copy "%i\*.*" WEG
Mach einen Haken dran, wenn fertig.
Grüße
Biber