Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Unterordner mit verschiedenen namen kopieren ohne den hauptordner

Frage Entwicklung Batch & Shell

Mitglied: GismoCrack

GismoCrack (Level 1) - Jetzt verbinden

25.07.2013, aktualisiert 26.07.2013, 3194 Aufrufe, 25 Kommentare, 4 Danke

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
Mitglied: bastla
25.07.2013 um 21:07 Uhr
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
Bitte warten ..
Mitglied: GismoCrack
26.07.2013 um 08:46 Uhr
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.....
Bitte warten ..
Mitglied: bastla
26.07.2013, aktualisiert um 12:09 Uhr
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
01.
@echo off & setlocal 
02.
set "Quelle=D:\test" 
03.
set "Ziel=C:\Users\GismoCrack\Desktop" 
04.
 
05.
for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /s "%%j" "%Ziel%\%%~nxj\" && echo rd /s /q "%%j" 
06.
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]
Bitte warten ..
Mitglied: hajowe
26.07.2013, aktualisiert um 09:50 Uhr
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
Bitte warten ..
Mitglied: GismoCrack
26.07.2013 um 11:27 Uhr
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
01.
@echo off & setlocal 
02.
> set "Quelle=D:\test" 
03.
> set "Ziel=C:\Users\GismoCrack\Desktop" 
04.
>  
05.
> for /d %%i in ("%Quelle%\*") do for /d %%j in ("%%i\*") do xcopy /s "%%j" "%Ziel%\%%nxj\" 
06.
> && echo rd /s /q "%%j" 
07.
> pause 
08.
> 
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 raus
Bitte warten ..
Mitglied: hajowe
26.07.2013 um 11:54 Uhr
@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.
Bitte warten ..
Mitglied: GismoCrack
26.07.2013 um 12:05 Uhr
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
Bitte warten ..
Mitglied: bastla
26.07.2013 um 12:10 Uhr
Hallo GismoCrack!

Korektur oben vorgenommen ...

Grüße
bastla
Bitte warten ..
Mitglied: GismoCrack
26.07.2013 um 14:19 Uhr
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
Bitte warten ..
Mitglied: bastla
26.07.2013 um 14:33 Uhr
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
Bitte warten ..
Mitglied: GismoCrack
26.07.2013, aktualisiert um 15:29 Uhr
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
Bitte warten ..
Mitglied: bastla
26.07.2013 um 15:39 Uhr
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
Bitte warten ..
Mitglied: GismoCrack
26.07.2013, aktualisiert um 16:16 Uhr
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.
Bitte warten ..
Mitglied: bastla
26.07.2013 um 17:36 Uhr
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
Bitte warten ..
Mitglied: GismoCrack
26.07.2013 um 18:09 Uhr
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)?

Bitte warten ..
Mitglied: bastla
26.07.2013 um 20:41 Uhr
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 ...
Bitte warten ..
Mitglied: GismoCrack
28.07.2013, aktualisiert um 00:55 Uhr
mir ist aufgefallen das er die liedern in manchen ordnern löscht, meist bis lied 4 danach funkionieren alle..woran kann das liegen?
Bitte warten ..
Mitglied: bastla
28.07.2013 um 09:13 Uhr
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
Bitte warten ..
Mitglied: GismoCrack
28.07.2013 um 11:11 Uhr
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.
Bitte warten ..
Mitglied: bastla
28.07.2013 um 11:45 Uhr
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
Bitte warten ..
Mitglied: GismoCrack
28.07.2013 um 13:57 Uhr
ok,das scheint zumindestens jetzt super zu funkionieren, noch mals vielen lieben dank bastla.
Bitte warten ..
Mitglied: B-free
29.07.2013 um 11:24 Uhr
Hi,

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

einfach:
01.
@echo off 
02.
xcopy "D:\test\*\*" "C:\Users\GismoCrack\Desktop" /s 
03.
pause > NUL 
04.
EXIT
Tschau
B-free
Bitte warten ..
Mitglied: Biber
29.07.2013, aktualisiert um 14:24 Uhr
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
Bitte warten ..
Mitglied: bastla
29.07.2013, aktualisiert um 11:50 Uhr
@ B-free
ich glaube das geht noch einfacher!
Batch würde ich nicht als Glaubensfrage betrachten ...

... daher: siehe gleich oberhalb.

Grüße
bastla
Bitte warten ..
Mitglied: B-free
29.07.2013 um 14:22 Uhr
@ 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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...