markus1991
Goto Top

Explizite Ordner per Skript, Batch kopieren!

Hallo zusammen,

folgende Situation:

Wir betreiben einen internen Fileserver mit diversen Freigaben. Nun hat sich dort im laufe der Jahre eine gewisse Struktur entwickelt, welche nun neu überarbeit werden soll.

Nun zu meinem Problem... wir haben ein Ordner mit "Kunden". In diesem Ordner sind dann all unsere Kunden vertreten (jeweils eigener Ordner)... unter den jeweiligen Kunden gibt es dann noch die Abteilungen (auch eigene Ordner). Und in all diesen Abteilungen gibt es min. ein Projekt (auch wieder eigene Ordner). In diesem Projektordner gibt es dann überall die Verzeichnisse "Angebote", "Dokumentation", "Daten" und "Protokolle".

Aufgrund von Berechtigungsproblemen möchte ich nun die Struktur so erstellen das es einen Hauptordner "Angebote" gibt und darunter dann die Kunden, mit Abteilungen, Projekten und NUR den Ordner Angebote...

Jetzt meine Frage:

Besteht die Möglichkeit ein Skript/Batch file zu schreiben welches die komplette "Kundenstruktur" durchsucht, NUR die Angebotsordner selektiert und an einen Ort xy kopiert?!

Ich hoffe Ihr versteht das durcheinander in dem Kundenordner :D

Viele Grüße
Markus

Content-Key: 213484

Url: https://administrator.de/contentid/213484

Printed on: April 25, 2024 at 14:04 o'clock

Member: Endoro
Endoro Aug 06, 2013 at 10:17:30 (UTC)
Goto Top
Hallo,
Du müsstest sagen, wie die Ordner heissen (alle "Angebote"?) und wie sie dann am Zielort heissen sollen.

lg.
Member: bastla
bastla Aug 06, 2013 at 10:18:54 (UTC)
Goto Top
... bzw noch besser: Führe 2 Beispiele jeweils mit konkreten Vorher-Nachher-Pfaden an ...

Grüße
bastla
Member: Markus1991
Markus1991 Aug 06, 2013 updated at 10:51:11 (UTC)
Goto Top
z. B. von \\Fileserver\Kunden\Kunde1\Projekt1\Angebote

nach

\\Fileserver\Angebote\ und dann die Struktur von oben übernimmt, also... \Kunde1\Projekt1 ... wobei man die Struktur ja auch vorher per xcopy übernehmen könnte und dann kopiert.

oder

\\Fileserver\Kunden\Kunde2\Angebote
nach
\\Fileserver\Angebote\Kunde2\ (falls der Kunde nur ein Projekt hat...)

Zitat von @Endoro:
Hallo,
Du müsstest sagen, wie die Ordner heissen (alle "Angebote"?) und wie sie dann am Zielort heissen sollen.

lg.
ja diese heißen alle "Angebote", aber halt in unterschiedlichen Strukturen...
Member: Biber
Biber Aug 06, 2013 updated at 11:01:24 (UTC)
Goto Top
Moin Markus1991,

Zitat von @Markus1991:
Jetzt meine Frage:

Besteht die Möglichkeit ein Skript/Batch file zu schreiben welches die komplette "Kundenstruktur" durchsucht, NUR
die Angebotsordner selektiert und an einen Ort xy kopiert?!
Ja, die Möglichkeit besteht.
Ich habe auch keinen Verdacht, warum Endoro und bastla so ausweichend antworten.

Möchtest du jetzt diese Frage als als gelöst kennzeichnen, deine Vorher/Nachher-Beschreibung zusammenharken und damit einen neuen Beitrag aufmachen?

Oder machen wir hier weiter?
Dann bring doch bitte mal Ist/Soll-Beispiele.

Das IST bekommst du z.B. mit 5cm einer "Dir /b /s" -Ausgabe, das SOLL mit Strg-C/Strg-V und einem handelsüblichen Editor.

Menno....

Biber
[Edit] @ Markus1991

Okay, ich zieh meinen Kommentar zurück, hatte sich zeitlich mit deinem letzten überschnitten.
Ich sollte noch viiiiiiiiel ruhiger werden....
[/Edit]
Member: bastla
bastla Aug 06, 2013 updated at 11:15:38 (UTC)
Goto Top
Hallo Markus1991!

Das könnte dann etwa so aussehen (ungetestet):
@echo off & setlocal
set "Quelle=\\Fileserver\Kunden"  
set "Ziel=\\Fileserver\Angebote"  

for /f "delims=" %%i in ('dir /s/b/ad "%Quelle%\Angebote"') do (  
    set "Quellpfad=%%~dpi"  
    set "Quellordner=%%~nxi"  
    setlocal enabledelayedexpansion
    echo md "!Quellpfad:%Quelle%=%Ziel%!"  
    echo move "!Quellpfad!!Quellordner!" "!Quellpfad:%Quelle%=%Ziel%!"  
    endlocal
)
pause
Das "echo" in den Zeilen 9 und 10 dient dazu, die Befehle für das Erstellen des Zielordners und das Verschieben (zum Testen) nur anzuzeigen ...

[Edit] Wenn kopiert (und nicht verschoben) werden soll, braucht natürlich noch nicht einmal der Zielpfad vorweg erstellt zu werden ("xcopy" macht das automatisch):
@echo off & setlocal
set "Quelle=\\Fileserver\Kunden"  
set "Ziel=\\Fileserver\Angebote"  

for /f "delims=" %%i in ('dir /s/b/ad "%Quelle%\Angebote"') do (  
    set "Quellordner=%%i"  
    setlocal enabledelayedexpansion
    echo xcopy /s "!Quellordner!" "!Quellordner:%Quelle%=%Ziel%!\"  
    endlocal
)
pause
/Edit]

Grüße
bastla
Member: Markus1991
Markus1991 Aug 06, 2013 at 11:44:46 (UTC)
Goto Top
Super, vielen Dank für die schnelle Antwort bastla. Ich werde dein Skript mal testen und gebe dann hier Bescheid.
Member: Markus1991
Markus1991 Aug 15, 2013 at 21:19:00 (UTC)
Goto Top
Hallo,
ich werde die Frage mal auf gelöst setzen, bin nun 2 Wochen im Urlaub und kann es daher nicht testen, bin mir aber sicher das ich durch euch auf eine Lösung gekommen bin. Vielen Dank nochmal.