Zwei Variablen jeweils aus einer Datei auslesen und in einem Befehl abarbeiten?!
Hallo!
Ich habe bisher schon den ein oder anderen wirklich guten Gedankenanstoß aus diesem Forum und bin der Meinung dass hier auch wirklich sehr kompetente Leute unterwegs sind.... Die mir hoffentlich auch bei meinem Fall kurz helfen können.
Ausgangspunkt: Ich möchte Dateien auf Desktops von Usern bzw. in Homelaufwerke von Usern per Batch-Datei kopieren lassen. Ich habe mir das so vorgestellt dass ich eine Datei "users.txt" und eine Datei "dateinamen.txt" habe. Anfangs habe ich das das Script erstellt um nur einzelne Dateien kopieren zu lassen. Die User exportiere ich einfach aus einer bestehenden Gruppe aus dem Active Directory und der Aufruf bzw. das Verteilen funktioniert auch prima. Die Pfade auf welchen Server in welches Verzeichnis frage ich zuvor mit einfachen "J/N" Abfragen ab und setze die Variablen entsprechend. Sprich der bisherige eigentliche Kopierbefehl war folgender:
FOR /F "tokens=1" %%i IN (user.txt) DO copy %VORLAGEDATEI% %ZIELPFAD1%\%%i%ZIELPFAD2%\%VORLAGEDATEI% /Y
Jetzt bin ich auf die Idee bzw. in der Praxis auf das Problem gekommen, dass man ggf. ja auch mal mehrere Dateien im Homelaufwerk austauschen muss... Sprich ich würde das mit einer Datei namens "dateinamen.txt" machen wollen, dass der Kopierbefehl halt ALLE dort genannten Dateien für alle in der "users.txt" genannten Benutzer verteilt. Allerdings habe ich keine Ahnung wie ich das in einem Befehl realisieren soll und meine Tests bisher waren eher unerfolgreich....
Ich habe bisher schon den ein oder anderen wirklich guten Gedankenanstoß aus diesem Forum und bin der Meinung dass hier auch wirklich sehr kompetente Leute unterwegs sind.... Die mir hoffentlich auch bei meinem Fall kurz helfen können.
Ausgangspunkt: Ich möchte Dateien auf Desktops von Usern bzw. in Homelaufwerke von Usern per Batch-Datei kopieren lassen. Ich habe mir das so vorgestellt dass ich eine Datei "users.txt" und eine Datei "dateinamen.txt" habe. Anfangs habe ich das das Script erstellt um nur einzelne Dateien kopieren zu lassen. Die User exportiere ich einfach aus einer bestehenden Gruppe aus dem Active Directory und der Aufruf bzw. das Verteilen funktioniert auch prima. Die Pfade auf welchen Server in welches Verzeichnis frage ich zuvor mit einfachen "J/N" Abfragen ab und setze die Variablen entsprechend. Sprich der bisherige eigentliche Kopierbefehl war folgender:
FOR /F "tokens=1" %%i IN (user.txt) DO copy %VORLAGEDATEI% %ZIELPFAD1%\%%i%ZIELPFAD2%\%VORLAGEDATEI% /Y
Jetzt bin ich auf die Idee bzw. in der Praxis auf das Problem gekommen, dass man ggf. ja auch mal mehrere Dateien im Homelaufwerk austauschen muss... Sprich ich würde das mit einer Datei namens "dateinamen.txt" machen wollen, dass der Kopierbefehl halt ALLE dort genannten Dateien für alle in der "users.txt" genannten Benutzer verteilt. Allerdings habe ich keine Ahnung wie ich das in einem Befehl realisieren soll und meine Tests bisher waren eher unerfolgreich....
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 72175
Url: https://administrator.de/contentid/72175
Ausgedruckt am: 05.11.2024 um 23:11 Uhr
2 Kommentare
Neuester Kommentar
Moin Wolfi702,
willkommen im Forum.
In Deinem Fall musst Du zwei For-Aweisungen hintereinander aufrufen.
Das Prinzip kannst Du erkennen hier an einem CMD-Prompt-Beispiel:
Als (formatierter) Einzeiler sähe eine Skizze für Deine Anforderung so aus:
Gruß
Biber
willkommen im Forum.
In Deinem Fall musst Du zwei For-Aweisungen hintereinander aufrufen.
Das Prinzip kannst Du erkennen hier an einem CMD-Prompt-Beispiel:
for %i in (1 2 3 4 5) do @for %j in (A B C D E) do @echo %i%j
Als (formatierter) Einzeiler sähe eine Skizze für Deine Anforderung so aus:
FOR /F "tokens=1" %%i IN (users.txt) DO (
For /F %%j in (Vorlagen.txt) do copy %%j %ZIELPFAD1%\%%i\%ZIELPFAD2%\%%~nxj /Y
)
Gruß
Biber