gismocrack
Goto Top

Unterordner mit verschiedenen namen kopieren ohne den hauptordner

Hallo allerseits,


Vorweg:

ich beschäftige mich erst seid heute mit batch befehlen etc. und genau deswegen hatte ich mich hier auch angemeldet um hilfestellungen zu bekommen und etwas zulernen in diesen bereich,leider bleibt mir nicht all zu viel zeit für dieses Hobby.
xcopy "D:\test" "C:\Users\GismoCrack\Desktop" /s

PAUSE


erstmal worum es genau geht:

D:\test
D:\test\A\ordner den ich kopiert haben will
D:\test\B \ordner den ich kopiert haben will
D:\test\C\ordner den ich kopiert haben will

usw.

und in jeden dieser ordner a,b,c usw. sind die ordner die ich halt an den anderen ort brauche, mit mein befehl oben geht das nich,da er mit mein befehl oben kopiert er aber die a,b,c, ordner usw. mit, ist es nicht möglich via batch befehl nur die unterordner zu kopieren?!


LG

Mirko

Content-Key: 212500

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

Printed on: April 16, 2024 at 15:04 o'clock

Member: bastla
bastla Jul 25, 2013 at 19:07:37 (UTC)
Goto Top
Hallo GismoCrack und willkommen im Forum!
mit mein befehl oben kopiert er aber die a,b,c, ordner usw. mit
Bis jetzt habe ich gar keinen Befehl gesehen ...

Außerdem sind eine Reihe von Fragen / Überlegungen offen, zB:
  • Woran sind denn die gewünschten Ordner zu erkennen - haben sie alle den gleichen Namen (wie würden sie denn dann im Zielordner auseinandergehalten) oder gleiche Namensbestandteile?
  • Sollen die Dateien dieser Ordner oder die gesamten Ordner (also inkl ev Unterordnern) kopiert werden?
  • Wenn nur Dateien: Sollen diese im Ziel wieder in Unterordnern landen oder alle in einem Ordner gesammelt werden?

Grüße
bastla
Member: GismoCrack
GismoCrack Jul 26, 2013 at 06:46:26 (UTC)
Goto Top
Zitat von @bastla:
Hallo GismoCrack und willkommen im Forum!
> mit mein befehl oben kopiert er aber die a,b,c, ordner usw. mit
Bis jetzt habe ich gar keinen Befehl gesehen ...

Außerdem sind eine Reihe von Fragen / Überlegungen offen, zB:
  • Woran sind denn die gewünschten Ordner zu erkennen - haben sie alle den gleichen Namen (wie würden sie denn dann im
Zielordner auseinandergehalten) oder gleiche Namensbestandteile?
  • Sollen die Dateien dieser Ordner oder die gesamten Ordner (also inkl ev Unterordnern) kopiert werden?
  • Wenn nur Dateien: Sollen diese im Ziel wieder in Unterordnern landen oder alle in einem Ordner gesammelt werden?

Grüße
bastla

zu1.) teilweise haben sie die gleichen namen,teilweise nicht
zu2.) wie oben beschriebenwill ich aus den einzelnen a,b,c ordnern die ordner haben aber eben nicht die abc ordner die mitkopiert werden sollen,das habe ich mit den o.g. befehl nämlich obwohl das /s dahinter ist kopiert er mir die ordner a,b und c mit.


ich hoffe ich konnte mich halbwegs ausdrücken was ich meine und wurde verstanden.ich möchte halt einfach nur die unterordner aus abc, haben danach können diese müssen aber nicht gelöscht werden,das könnte ich per hand auch machen, nur dieses rauskopieren/schneiden) ist in mein falle oft eine lange durststrecke von klicks.....
Member: bastla
bastla Jul 26, 2013 updated at 10:09:46 (UTC)
Goto Top
Hallo GismoCrack!

Ich vermute dann mal, dass alle Unterordner der jeweiligen Ordner "a", "b", "c", ... kopiert werden sollen - in diesem Fall könntest Du (ungetestet) geschachtelte Schleifen der Art
@echo off & setlocal
set "Quelle=D:\test"  
set "Ziel=C:\Users\GismoCrack\Desktop"  

for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /s "%%j" "%Ziel%\%%~nxj\" && echo rd /s /q "%%j"  
pause
verwenden. Das Löschen der Ordner wird so nur simuliert (zumindest, solange das "echo"vor dem "rd" steht).

Grüße
bastla

[Edit] "~" nachgetragen [/Edit]
Member: hajowe
hajowe Jul 26, 2013 updated at 07:50:01 (UTC)
Goto Top
Hallo Cismocrack

Versuch es mal mit dem Command Robocopy


Hier ein Beispiel:

robocopy D:\Test D:\neu /S
robocopy D:\TestA D:\neu /S
robocopy D:\TestB D:\neu /S
pause

Ergebnis sollte sein:
Auf Laufwerk D: hast du im Ordner Neu anschliessend nur die Unterordner aus den Quellen. Der _Hauptordner wird nicht mit kopiert.
Wenn es das ist was du haben möchtest und funktioniert, kannst du bei dem Robocopy noch die Schalter

/MOV :: Verschiebt Dateien (löscht Dateien nach dem Kopieren an der Quelle).
/MOVE :: Verschiebt Dateien UND Verzeichnisse (löscht sie nach dem Kopieren an der Quelle).

nutzen.
Dann brauchst du es nicht per Hand löschen.


Gruß
Hajowe
Member: GismoCrack
GismoCrack Jul 26, 2013 at 09:27:00 (UTC)
Goto Top
Zitat von @bastla:
Hallo GismoCrack!

Ich vermute dann mal, dass alle Unterordner der jeweiligen Ordner "a", "b", "c", ... kopiert werden
sollen - in diesem Fall könntest Du (ungetestet) geschachtelte Schleifen der Art
@echo off & setlocal
> set "Quelle=D:\test"  
> set "Ziel=C:\Users\GismoCrack\Desktop"  
> 
> for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /s "%%j" "%Ziel%\%%nxj\"  
> && echo rd /s /q "%%j"  
> pause
> 
verwenden. Das Löschen der Ordner wird so nur simuliert (zumindest, solange das "echo"vor dem
"rd" steht).

Grüße
bastla

genau so hab ich mir das vorgestellt, problem ist hier nur der neu erstellte ordner nennt sich "%nxj" auf den desktop und nicht so wie der unterordner auf d sich nennt und es er kopiert auch nur einen unterordner mit aber die anderen b,c nicht

@hajowe

das problem ist ja hier das ich jedesmal eine batch erstellen müsste mit den unterordner namen, dann kann ich sie auch per hand kopieren, kommt ja das gleiche rausface-smile
Member: hajowe
hajowe Jul 26, 2013 at 09:54:49 (UTC)
Goto Top
@hajowe

das problem ist ja hier das ich jedesmal eine batch erstellen müsste mit den unterordner namen, dann kann ich sie auch per hand kopieren, kommt ja das gleiche raus


Du hattest aber nicht geschrieben das der Ordner in deinem Fallae Test/A usw. sich jetesmal unterschiedlich darstellt.
Ich hatte es so verstanden das D: ; TEST; und A, b, und c immer gleich bleibt.
Wo musst du dann was eingeben ausser beim dem Ausgangsordner?
Denke mal das dies in jedem Script so ist das der Ausgangsordner fest ist?

Falls er variabel ist dann gib ihn einfach als Parameter an das cmd.
Member: GismoCrack
GismoCrack Jul 26, 2013 at 10:05:23 (UTC)
Goto Top
Zitat von @hajowe:
@hajowe

das problem ist ja hier das ich jedesmal eine batch erstellen müsste mit den unterordner namen, dann kann ich sie auch per
hand kopieren, kommt ja das gleiche raus


Du hattest aber nicht geschrieben das der Ordner in deinem Fallae Test/A usw. sich jetesmal unterschiedlich darstellt.
Ich hatte es so verstanden das D: ; TEST; und A, b, und c immer gleich bleibt.
Wo musst du dann was eingeben ausser beim dem Ausgangsordner?
Denke mal das dies in jedem Script so ist das der Ausgangsordner fest ist?

Falls er variabel ist dann gib ihn einfach als Parameter an das cmd.

hi,

also:

D:\test
D:\test\A\ordner den ich kopiert haben will
D:\test\B \ordner den ich kopiert haben will
D:\test\C\ordner den ich kopiert haben will

die ordner a,b,c ändern sich immer das ist nur ein bsp.anderes bsp. damit es verständlicher wird:


D:\test
D:\test\billy\ordner den ich kopiert haben will
D:\test\anton\ordner den ich kopiert haben will
D:\test\baker\ordner den ich kopiert haben will
Member: bastla
bastla Jul 26, 2013 at 10:10:45 (UTC)
Goto Top
Hallo GismoCrack!

Korektur oben vorgenommen ...

Grüße
bastla
Member: GismoCrack
GismoCrack Jul 26, 2013 at 12:19:44 (UTC)
Goto Top
Zitat von @bastla:
Hallo GismoCrack!

Korektur oben vorgenommen ...

Grüße
bastla



jetzt erstellt er mir nur eine datei (unbekannter herkunft) welche sich "set" nennt ohne die " zeichen
Member: bastla
bastla Jul 26, 2013 at 12:33:51 (UTC)
Goto Top
Hallo GismoCrack!

Ändere "echo off" auf "echo on" und schau Dir den Ablauf an (so wird jede Zeile, bevor sie ausgeführt wird, zunächst einmal angezeigt). Wenn du daraus nicht schlau wirst, poste Deine aktuelle Version des Batches und die entstandenen Ausgaben ...

Grüße
bastla
Member: GismoCrack
GismoCrack Jul 26, 2013 updated at 13:29:45 (UTC)
Goto Top
Zitat von @bastla:
Hallo GismoCrack!

Ändere "echo off" auf "echo on" und schau Dir den Ablauf an (so wird jede Zeile, bevor sie
ausgeführt wird, zunächst einmal angezeigt). Wenn du daraus nicht schlau wirst, poste Deine aktuelle Version des Batches
und die entstandenen Ausgaben ...

Grüße
bastla


leider funkioniert der pause befehl nicht.

das is meine bisherige einstellung von dir:

@echo on & setlocal
set "Quelle=D:\test"
set "Ziel=C:\Users\GismoCrack\Desktop"

for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /s "%%j" "%Ziel%\%%nxj\"
&& echo rd /s /q "%%j"
pause

das cmd fenster geht kurz auf und raus kommt die set datei unbekannte windows datei
Member: bastla
bastla Jul 26, 2013 at 13:39:22 (UTC)
Goto Top
Hallo GismoCrack!

Einen Batch solltest Du ohnehin besser direkt in der CMD-Shell testen - dazu entweder die Batchdatei in das CMD-Fenster ziehen oder zunächst per Umsch-Rechtsklick "als Pfad" kopieren und dann im CMD-Fenster den Pfad zur Datei einfügen ...

Grüße
bastla
Member: GismoCrack
GismoCrack Jul 26, 2013 updated at 14:16:27 (UTC)
Goto Top
Zitat von @bastla:
Hallo GismoCrack!

Einen Batch solltest Du ohnehin besser direkt in der CMD-Shell testen - dazu entweder die Batchdatei in das CMD-Fenster ziehen
oder zunächst per Umsch-Rechtsklick "als Pfad" kopieren und dann im CMD-Fenster den Pfad zur
Datei einfügen ...

Grüße
bastla

ok gemacht, nun bleibt das fenster auch offen, er sagt mir:


C:\Windows\system32>"C:\Users\GismoCrack\Desktop\doppelter ordner.bat"

C:\Windows\system32>"Quelle=D:\test"1>set
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.

C:\Windows\system32>"Ziel=C:\Users\GismoCrack\Desktop"1>set
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung
ist falsch.
Syntaxfehler.
Member: bastla
bastla Jul 26, 2013 at 15:36:25 (UTC)
Goto Top
Hallo GismoCrack!

Vielleicht wäre es doch besser, den von mir geposteten (und nicht den von Dir zitierten) Batch zu verwenden - dann fangen die Zeilen auch nicht mit ">" an ...

Grüße
bastla
Member: GismoCrack
GismoCrack Jul 26, 2013 at 16:09:44 (UTC)
Goto Top
Zitat von @bastla:
Hallo GismoCrack!

Vielleicht wäre es doch besser, den von mir
geposteten (und nicht den von Dir
zitierten) Batch zu verwenden - dann fangen die Zeilen auch nicht mit ">" an ...

Grüße
bastla

ah ok, also nun sieht es so bei mir aus:

@echo on & setlocal
set "Quelle=D:\test"
set "Ziel=C:\Users\GismoCrack\Desktop"

for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /s "%%j" "%Ziel%\%%nxj\"
&& echo rd /s /q "%%j"
pause

er kopiert schön die unterordner der ordner auf den desktop nennt sich aber "%nxj"

den gleichen ordner will er dann noch mal kopieren und fragt mich ob ich überschreiben will.

so sieht das im cmd aus:



C:\Users\GismoCrack\Desktop>set "Quelle=D:\test"

C:\Users\GismoCrack\Desktop>set "Ziel=C:\Users\GismoCrack\Desktop"

C:\Users\GismoCrack\Desktop>for / %i in ("D:\test\*") do for / %j in ("%i\*") do
xcopy /s "%j" "C:\Users\GismoCrack\Desktop\%nxj\"

C:\Users\GismoCrack\Desktop>for / %j in ("D:\test\1980 - Iron Maiden\*") do xcop
y /s "%j" "C:\Users\GismoCrack\Desktop\%nxj\"

C:\Users\GismoCrack\Desktop>xcopy /s "D:\test\1980 - Iron Maiden\1980 - Iron Mai
den" "C:\Users\GismoCrack\Desktop\%nxj\"
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\01 - Prowler.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\02 - Remember Tomorrow.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\03 - Running Free.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\04 - Phantom Of The Opera.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\05 - Transylvania.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\06 - Strange World.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\07 - Sanctuary.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\08 - Charlotte The Harlot.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\09 - Iron Maiden.mp3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\f.jpg
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\Bonus Disc\01 - Burning Ambition.m
p3
D:\test\1980 - Iron Maiden\1980 - Iron Maiden\Bonus Disc\02 - Drifter (Live).mp3

D:\test\1980 - Iron Maiden\1980 - Iron Maiden\Bonus Disc\03 - I've Got The Fire
(Live).mp3
13 Datei(en) kopiert

C:\Users\GismoCrack\Desktop>for / %j in ("D:\test\1980 - Iron Maiden (Digitally
Remastered 1998)\*") do xcopy /s "%j" "C:\Users\GismoCrack\Desktop\%nxj\"

C:\Users\GismoCrack\Desktop>xcopy /s "D:\test\1980 - Iron Maiden (Digitally Rema
stered 1998)\1980 - Iron Maiden (Digitally Remastered 1998)" "C:\Users\GismoCrac
k\Desktop\%nxj\"
C:\Users\GismoCrack\Desktop\%nxj\01 - Prowler.mp3 überschreiben (Ja/Nein/Alle)?

Member: bastla
bastla Jul 26, 2013 at 18:41:18 (UTC)
Goto Top
Hallo GismoCrack!

Ich hatte die Korrektur auf
for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /s "%%j" "%Ziel%\%%~nxj\" && echo rd /s /q "%%j"
doch oben schon angebracht ...

Grüße
bastla

P.S.: Verwende bitte zum Posten von Bach-Schnipseln und auch dre Ausgaben "Code"-Formatierung ...
Member: GismoCrack
GismoCrack Jul 27, 2013 updated at 22:55:48 (UTC)
Goto Top
mir ist aufgefallen das er die liedern in manchen ordnern löscht, meist bis lied 4 danach funkionieren alle..woran kann das liegen?
Member: bastla
bastla Jul 28, 2013 at 07:13:48 (UTC)
Goto Top
Hallo GismoCrack!

Abgesehen davon, dass ich nicht weiß, was Du mit
danach funkionieren alle
meinst: der Batch kopiert und löscht jeweils ganze Ordner, nicht einzelne Dateien ...

Grüße
bastla
Member: GismoCrack
GismoCrack Jul 28, 2013 at 09:11:46 (UTC)
Goto Top
Hallo Bastla,

also er kopiert soweit alle mp3 dateien aus den gewünschten unterordnern, allerdings kopiert er nicht die ersten 4 lieder sondern erst ab lied 5.
Member: bastla
bastla Jul 28, 2013 at 09:45:20 (UTC)
Goto Top
Hallo GismoCrack!

Ist zwar nicht wirklich nachvollziehbar, aber versuch es mit
for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /shk "%%j\*.*" "%Ziel%\%%~nxj\" && echo rd /s /q "%%j"
Grüße
bastla
Member: GismoCrack
GismoCrack Jul 28, 2013 at 11:57:23 (UTC)
Goto Top
ok,das scheint zumindestens jetzt super zu funkionieren, noch mals vielen lieben dank bastla.
Member: B-free
B-free Jul 29, 2013 at 09:24:08 (UTC)
Goto Top
Hi,

ich glaube das geht noch einfacher!
(wenn ich keinen denkfehler habe...)

einfach:
@echo off
xcopy "D:\test\*\*" "C:\Users\GismoCrack\Desktop" /s  
pause > NUL
EXIT

Tschau
B-free
Member: Biber
Biber Jul 29, 2013 updated at 12:24:35 (UTC)
Goto Top
Moin B-free,

hmm, das müsste sich ja verifizieren lassen, indem du probeweise den Parameter /L (nur anLISTen, nicht kopieren) verwendest.


xcopy "D:\test\*\*" "C:\Users\GismoCrack\Desktop" /s /L

bei mir wäre die Antwort:
Datei * nicht gefunden
0 Datei(en) kopiert

Grüße
Biber
Member: bastla
bastla Jul 29, 2013 updated at 09:50:08 (UTC)
Goto Top
@ B-free
ich glaube das geht noch einfacher!
Batch würde ich nicht als Glaubensfrage betrachten ... face-wink

... daher: siehe gleich oberhalb.

Grüße
bastla
Member: B-free
B-free Jul 29, 2013 at 12:22:38 (UTC)
Goto Top
@ Biber & bastla

hab nur grad reingeschaut und gedacht, dass ich das schon mal so gemacht hätte... (oder so ähnlich)

kann grad auch leider nichts ausprobieren...


Tschau
B-free