Batch Prüf- Kopier und Löschskript

thron

Cadet 3rd Year
Registriert
März 2017
Beiträge
60
Guten Abend an alle,

habe eine Aufgabe und komme leider alleine nicht weiter.
Ich brauche ein Skript, dass Benutzernamen in einer txt-Datei mit den Verzeichnissen auf C:\Users vergleicht. Gibt es eine Übereinstimmung soll eine Datei von D:\Ordner1 in das Übereinstimmende Userverzeichnis kopiert werden.

Beispiel:

Inhalt Txt-Datei:
Müller
Maier
Schmitt


C:\Users -->Ordner in Users

\Berger
\Huber
\Maier --> Übereinstimmgun mit TXT; jetzt Datei von D:\Ordner1 in Verzeichnis Maier kopieren!!
\Berhends

Wie bekomme ich das hin? Habe keine Ahnung wie ich TXT-Dateiinhalte mit Ordnernamen vergleichen kann.

Viele Dank schon im Voraus für Eure Mühe

Viele Grüße an alle....
 
Indem du den Inhalt eines Ordners auflistest und dir das Ergebnis in eine Textdatei umleitest. Dann kannst du vergleichen. Sauberere Lösung wäre aber nicht Textdateien sondern bei kleinen Datenmengen die zu vergleichenden Daten erst sortieren lassen, z.B. alphabetisch, und dann in ein Array. Dann die beiden Arrays vergleichen lassen und bei identischem Treffer diesen ausgeben lassen. Bei großen Datenmengen dann kein Array sondern eine Datenbank.
 
Hallo,

das hört sich doch gut an. Habe auch gleich mal versucht das umzusetzten und scheitere an der Syntax kläglich. Ich bekomme es nciht hin, dass er die alle Namen von der txtx-Datei mit den Ordnernamen vergleicht.

könnte mir jemand bitte unter die Arme greifen.

Vielen Dank und Grüße
 
Einfach 2 Schleifen - eine über die Verzeichnisse, die andere über die Zeilen der Textdatei:
Code:
@echo off
setlocal enabledelayedexpansion
for /f "eol=: delims=" %%d in ('dir "C:\User"/b /ad /one') do (
	for /f "delims=" %%l in (Textdatei.txt) do (
		if %%d == %%l (
			echo Übereinstimmung gefunden: %%d.
		) else (
			echo %%d und %%l stimmen nicht überein.
		)
	)
)
 
super viele Dank, hat alles funktioniert. Hatte nur einen kleinen Denkfehler bzw. Syntaxfehler....

Viele Dank noch mal...
 
Zurück
Oben