wolfi702
Goto Top

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....

Content-ID: 72175

Url: https://administrator.de/forum/zwei-variablen-jeweils-aus-einer-datei-auslesen-und-in-einem-befehl-abarbeiten-72175.html

Ausgedruckt am: 24.12.2024 um 13:12 Uhr

Biber
Biber 29.10.2007 um 13:02:28 Uhr
Goto Top
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:
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
wolfi702
wolfi702 29.10.2007 um 14:02:54 Uhr
Goto Top
SUPER!!!
Ich such seit geraumer Zeit nach nem Freewaretool und jetzt hab ich´s dank diesem Forum tatsächlich per Batchdatei selber gemacht face-smile
Ich bin einfach nicht auf die Idee gekommen die zweite Anforderung in Klammern zu setzen... Oh man... *ankopfhau*

Besten Dank!!