mehrlich 10 Geschrieben 4. April 2007 Melden Teilen Geschrieben 4. April 2007 Hallo Forum, ich möchte ein script schreiben, mit dem ich in jedem Homeordener der Benutzer einen Ordner kopieren. Das heißt, Beispiel: in D:\Daten\homedirs\ liegen ca. 100 Unterordner (Home Laufwerke) in jedem von denen möchte ich per Script ein und den Selben Ordner kopieren. Nur weiß ich nicht wie das Script aussehen muß. Ich habe eine Domäne und viele Homedirs von den Usern. Gruß, Martin Zitieren Link zu diesem Kommentar
4077 30 Geschrieben 4. April 2007 Melden Teilen Geschrieben 4. April 2007 prinzipiell geht das auch schnell mittels batch, xcopy und excel (Funktion verketten) 1) dir /B D:\Daten\homedirs\ > c:\temp\ordnernamen.txt 2) ordnernamen.txt nach excel importieren 3) in excel mit der Funktion verketten arbeiten und aus vier Spalten "xcopy c:\quelle D:\Daten\homedirs\" "ordnername (aus ordnernamen.txt)" " optionen nach Wunsch" "=verketten(a1;b1;c1)" das excel-file "basteln 4) einfach am markierten Eck anfassen und "nach unten ziehen" und schon hast du den batchinhalt in Spalte vier. 5) alles in eine *.cmd kopieren und dann ausführen. 5min Aufwand. Wer es schöner programmieren kann vor! ;-) Ich lerne gern dazu.... 4077 Zitieren Link zu diesem Kommentar
mehrlich 10 Geschrieben 4. April 2007 Autor Melden Teilen Geschrieben 4. April 2007 Klingt nicht schlecht aber Punkt drei verstehe ich nicht ganz Zitieren Link zu diesem Kommentar
Demon72 10 Geschrieben 4. April 2007 Melden Teilen Geschrieben 4. April 2007 Hier ein vbs Script, welches die Aufgabe erledigt. Const strQuelldrive="D:\" Const strQuellFolder="SAP" 'Quellordner darf keine Unterordner enthalten! (Schleifenbildung!) Const strDrive="D:\Daten\homedirs\" Dim strPfad Dim Subfolder Set objFSO = CreateObject("Scripting.FileSystemObject") set objFolder=objFSO.GetFolder(strQuelldrive & strQuellFolder) ShowSubfolders objFSO.GetFolder(strDrive) Set ObjFolder=Nothing Set objFSO=Nothing Wscript.Echo "Fertig" Sub ShowSubFolders(Folder) For Each Subfolder in Folder.SubFolders If subfolder.name <> strQuellFolder Then if not (objFSO.FolderExists(Subfolder.Path & "\" & strQuellFolder)) Then objFSO.CreateFolder(Subfolder.Path & "\" & strQuellFolder) objFolder.Copy Subfolder.Path & "\" & strQuellFolder End If ShowSubFolders Subfolder Next End Sub Zitieren Link zu diesem Kommentar
mehrlich 10 Geschrieben 4. April 2007 Autor Melden Teilen Geschrieben 4. April 2007 Danke cool. Nur hat der Quellordner Unterordner. Also kann es nicht nutzen nehme ich an? Zitieren Link zu diesem Kommentar
Demon72 10 Geschrieben 4. April 2007 Melden Teilen Geschrieben 4. April 2007 So nun geht es auch mit Unterordnern Const strDrive="D:\Daten\homedirs\" Const strQuelldrive="D:\" Const strQuellFolder="SAP" Dim strPfad Dim Subfolder Set objFSO = CreateObject("Scripting.FileSystemObject") set objFolder=objFSO.GetFolder(strQuelldrive & strQuellFolder) ShowSubfolders objFSO.GetFolder(strDrive) Set ObjFolder=Nothing Set objFSO=Nothing Wscript.Echo "Fertig" Sub ShowSubFolders(Folder) For Each Subfolder in Folder.SubFolders If subfolder.name <> strQuellFolder Then if not (objFSO.FolderExists(Subfolder.Path & "\" & strQuellFolder)) Then objFSO.CreateFolder(Subfolder.Path & "\" & strQuellFolder) objFolder.Copy Subfolder.Path & "\" & strQuellFolder End If Next End Sub Zitieren Link zu diesem Kommentar
mehrlich 10 Geschrieben 4. April 2007 Autor Melden Teilen Geschrieben 4. April 2007 jap richtig. Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 4. April 2007 Melden Teilen Geschrieben 4. April 2007 Etwas schlanker wäre vom CMD-Prompt des Servers aus for /d %i in ("d:\daten\homedirs\*") do @md "%i\NeuerOrdner"[/Code] Gruss Biber Zitieren Link zu diesem Kommentar
mehrlich 10 Geschrieben 4. April 2007 Autor Melden Teilen Geschrieben 4. April 2007 for /d %i in ("d:\daten\homedirs\*") do @md "%i\NeuerOrdner" Verstehe ich das Richtig, dass der Stern in der Klammer alle Unterordner meint? Woher weiß das script wo "NeuerOrdner" liegt? Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 4. April 2007 Melden Teilen Geschrieben 4. April 2007 Hm, mach doch zur Probe mal so etwas wie for /d %i in ("%USERPROFILE%\..\*") do @echo %i[/Code] oder in Deinem Fall [Code]for /d %i in ("d:\daten\homedirs\*") do @echo md %i\NeuerOrdner[/Code] ...dann müsste sich doch erkennen lassen, ob Wunsch und Wirklichkeit weit auseinanderliegen. Gruss Biber Zitieren Link zu diesem Kommentar
mehrlich 10 Geschrieben 4. April 2007 Autor Melden Teilen Geschrieben 4. April 2007 Habe es chon hin bekommen. Danke euch allen. for /d %i in ("d:\daten\homedirs\*") do @xcopy "d:\daten\software\system" "%i\system" /S /E /I /H Vielleicht braucht das ja noch einer Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.