ageers
Goto Top

Erstellung einer komplizierten Batch Datei, für das Verschieben von Windows Ordnern

Hallo zusammen!

Ich hoffe ihr könnt mir helfen..

Ich brauche Hilfe bei der Erstellung einer (für mich zu) komplizierten Batch datei.
Ich muss massenweise Projektverzeichnisse aus mehreren Abteilungen und Servern auslagern...

Also was will ich?

Eine Batchdatei die mir aus:

q:\Auszulagernde projekte\Abteilung1\123456 Projekt1\unterordner1..2..3
q:\Auszulagernde projekte\Abteilung1\123456 Projekt1\Datei1..2..3
q:\Auszulagernde projekte\Abteilung1\123458 Projekt2\unterordner1..2..3
q:\Auszulagernde projekte\Abteilung1\123458 Projekt2\Datei1..2..3

das macht:


q:\Auszulagernde projekte2\123456 Projekt1\Abteilung1\123456 Projekt1\unterordner1..2..3
q:\Auszulagernde projekte2\123456 Projekt1\Abteilung1\123456 Projekt1\Datei1..2..3
q:\Auszulagernde projekte2\123458 Projekt2\Abteilung1\123458 Projekt2\unterordner1..2..3
q:\Auszulagernde projekte2\123458 Projekt2\Abteilung1\123458 Projekt2\Datei1..2..3

Aus Dokumentationsgründen muss diese Struktur leider zwingend eingehalten werden.
Die doppelten Projektnamen im Pfad kommen durch unterschiedliche Projektnamen in den
einzelnen ABteilungen. Und müssen erhalten bleiben.

Das einzige was (meistens) gleich ist, sind die Projektnummern.
Dieses muss ich dann noch manuell anpassen, aber wenn das Grundgerüst steht, hilft mir das schon riesig weiter...

Ich könnte mir vorstellen das dieses so ungefähr funktionieren könnte:

1.) Feststellen der Projektverzeichnisse
=>DIR "Q:\Auszulagernde Projekte\Schriftverkehr" /B /A:D > d:\qptree.txt

2.) erstellen der Toplevel Verzeichnisse (Projektnamen)
=> Md "q:\Auszulagernde projekte2\Quellnamen aus qptree.txt)"

3.) erstellen der Abteilungsunterordner
=> Md "q:\Auszulagernde projekte2\Quellnamen aus qptree.txt)\Schriftverkehr"

4.) Verschieben der Projektordner mit allen Unterordnern und Dateien ins Ziel
=>move "q:\Auszulagernde projekte\Quellnamen aus qptree.txt\" q:\Auszulagernde projekte2\Quellnamen aus qptree.txt\Abteilung1\"

irgendwie so denke ich...

Bloss das das wie ab, Punkt 2 hackt bei mir...

Hoffe ihr könnt mir helfen!

Vielen, Vielen, Vielen Dank im vorraus!

mfg
Ansgar Geers

Content-ID: 37757

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

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

Biber
Biber 10.08.2006 um 17:05:53 Uhr
Goto Top
Na, aGeers,

dann schau doch das nächste mal in "Batch & Shell" vorbei bei solchen Anforderungen.

Lohnt eigentlich kaum, dafür extra eine Batchdatei zu schreiben - zwei zeilen vom CMD-Prompt tätens auch.

::---snipp MoveMyKrempel.bat
for /f "delims=\ tokens=1-4,*" %%i in (dir /b /s /a:d "q:\Auszulagernde projekte"') do (  
 Echo md %%i\Auszulagende Projekte2\%%l\%%k\%%l\%%m
 Echo Move "%%i\%%j\%%k\%%l\%%m" "%%i\Auszulagende Projekte2\%%l\%%k\%%l\%%m"  
)
Testen und das "Echo" rauslöschen, wenn es passt.
Bei mir am CMD-Prompt liefert jedenfalls ein
>for /f "delims=\ tokens=1-4,*" %i in (f:\temp\qOrdner.txt) do @echo md %i\Auszulagende Projekte2\%l\%k\%l\%m  
md q:\Auszulagende Projekte2\123456 Projekt1\Abteilung1\123456 Projekt1\unterordner1..2..3
md q:\Auszulagende Projekte2\123456 Projekt1\Abteilung1\123456 Projekt1\Datei1..2..3
md q:\Auszulagende Projekte2\123458 Projekt2\Abteilung1\123458 Projekt2\unterordner1..2..3
md q:\Auszulagende Projekte2\123458 Projekt2\Abteilung1\123458 Projekt2\Datei1..2..3
...wobei in dieser Datei f:\temp\qOrdner.txt eine Kopie Deiner ersten JETZT-Zeilen steht.
Also das, was bei Dir qpTree.txt heißt.

Hope That Helps
Biber
aGeers
aGeers 24.08.2006 um 09:41:55 Uhr
Goto Top
Hi!

Danke für deine Hilfe!

Allerdings funktionierte SIe nicht, habe aber so lange rumgefummelt bis Sie lief..

for /f "delims=\ tokens=1-4,*" %%i in ('dir /b /s /a:d "Q:\P2"') do (
md "%%i\p3\%%l\%%k\"
Q:\robocopy.exe "%%i\P2\%%k\%%l" "%%i\p3\%%l\%%k\" /S /MOVE /R:1 /w:1
)

Bringt zwar Fehlermeldungen das er die Unterverzeichnisse nicht finden kann weil Robocopy
die schon weggeschoben hat, aber funzelt!

Kann mir mir einer erklären, wie ich die noch unterbinde?

Danke nochmal!

mfg
Ansgar
aGeers
aGeers 24.08.2006 um 10:02:55 Uhr
Goto Top
Korrektur:

for /f "delims=\ tokens=1-4,*" %%i in ('dir /b /s /a:d "Q:\P2"') do (  
 md "%%i\p3\%%l\%%k\%%l"  
 Q:\robocopy.exe "%%i\P2\%%k\%%l" "%%i\p3\%%l\%%k\%%l" /S /MOVE /R:1 /w:1  
)
Das Originale Projektverzeichnis wurde nicht angelegt, nu aber

bye
Ansgar
Biber
Biber 24.08.2006 um 19:36:48 Uhr
Goto Top
Moin aGeers,

na, dann war meine Skize ja nicht ganz umsonst... face-wink
Kann mir mir einer erklären, wie ich die [Fehlermeldungen] noch unterbinde?

Indem Du entweder
a) ans Ende der RoboCopy-Zeile 2>nul anhängst ("ignorante Methode")
-oder-
b) indem Du er RoboCopy-Zeile voranstellst: if exist "%%i\P2\%%k\%%l" ("vorausschauende Variante")

Grüße
Biber
P.S. Bitte Beitrag auf "Gelöst" setzen, falls er das jetzt ist.
aGeers
aGeers 25.08.2006 um 12:31:53 Uhr
Goto Top
Hi,

mmhh, falsch ausgedrückt..

Es liegt eher an der ersten Zeile...
(Hab Sie immer noch nicht verstanden (Nich mal ansatzweise), aber funzelt..)

Also Dadurch das die erste Zeile auch die Unterverzeichnisse ansteuert findet
Robocopy irgendwann die Unterverzeichnisse nicht mehr weil er die ja schon weggeschoben
hat, bei den root Verzeichnissen ...

Dadurch gibt er innerhalb des Dos Fensters natürlich Fehlermeldungen aus das er die Unterverzeichnisse nicht findet. Er macht aber weiter...
Ist ein Schönheitsfehler, aber nicht wirklich störend... (Dauert nur etwas länger)

bye
Ansgar
aGeers
aGeers 30.05.2007 um 11:21:37 Uhr
Goto Top
Also habe es so gelöst:

for /f "delims=\ tokens=1-4,*" %%i in ('dir /b /s /a:d "Q:\P2"') do (  
 md "%%i\p3\%%l\%%k"  
 Q:\robocopy.exe "%%i\P2\%%k\%%l" "%%i\p3\%%l\%%k" /S /MOVE /R:1 /w:1  
)

Auf dem Laufwerk sieht es so aus:

Ordner P2 hat Unterordner AVA, PLanung, Elt usw. dort sind dann jeweils die Projekte drin

Die verschiebt er dann in den Ordner P3 allerdings Ist das Projektverzeichnis jetzt vorne
und das Abteilung Verzeichnis in dem projekte drin.

Perfekt so wie ich brauche...

mfg
Ansgar geers
Biber
Biber 30.05.2007 um 12:02:28 Uhr
Goto Top
Moin Ansgar,

was lange währt... face-wink

Vielen Dank für die Rückmeldung und das Posten Deiner Lösung.

Ich habe die Skripts in Deinen letzten beiden Postings auf umformatiert,
werde jetzt gleich diesen Beitrag auf "Gelöst" und "Geschlossen" setzen und von "Window Server" nach "Batch & Shell" verschieben.

Grüße
Biber