(Peinlich) Batch Datei zum einfachen Verschieben von allen Unterordnern

desnatavo

Lt. Junior Grade
Registriert
Dez. 2012
Beiträge
462
Hi Leute,

ich dachte durch meine Kindheit und experimentieren mit MS-DOS würde ich gewappnet sein
gegen die alltäglichen Probleme, aber ich kriege es einfach nicht hin den Inhalt (Dateien und Ordner)
aus M:\Bilder\ nach M:\Bilder_Upload\ zu verschieben.

Ich habe folgende Sachen ausprobiert und dachte, die sollten doch klappen!?
Leider kopiert XCOPY und Robocopy nur die Dateien/Ordner, selbst wenn man bei Robocopy /move eingibt.
Das Verschieben sollte so schnell gehen als würde man es per Hand machen (Ausschneiden und Einfügen).

Code:
robocopy M:\Bilder\ M:\Bilder_Upload *.* /move

Leider sehr langer Kopierprozesss bei vielen Dateien.

Code:
SET CopyToDir="M:\Bilder_Upload\"

setlocal
pushd "%~1"
move /Y * %CopyToDir%
popd

exit

Diese Batch kopiert leider nur Dateien, aber gar nicht die Ordner. Natürlich nicht zu gebrauchen.
Xcopy kopiert leider auch nur und es soll wie gesagt nicht kopieren sondern einfach nur alles verschieben (Dateien und Unterordner).

Ich stell mich echt zu doof an, hat jemand eine Idee?

Schon mal vielen Dank im voraus und einen schönen 4. Advent-

Problem gelöst siehe letzter Post
 
Zuletzt bearbeitet:
Danke aber warum schickst du mir dann einen Artikel über Xcopy, wenn wir doch beide wissen, dass es doch damit nicht geht (wie du schon sagst) :D
Naja, ist noch früh am morgen.

Der Befehl soll alle Dateien/Unterverzeichnisse verschieben, nicht kopieren (langsamerer Prozess)
 
LOL, auch sehr nett, aber ich weiß schon wie es in Windows über die GUI geht. Die Batch Datei soll als Script ausgeführt werden, da ist Kontextmenü nicht so gut.
 
Du könntest ja mal bei Xcopy die Option /B ausprobieren da werden glaube ich nur die Links Kopiert.
 
Im Batch kannst du ja erst mit Xcopy kopieren und dann mit RD löschen .

Also

Xcopy c:\test\*.* c:\hierhin /S /e
RD c:\test /s
 
Ganz einfach


move D:\Bilder\*.* D:\Bilder_Upload

Geht und es geht sau schnell D ist natürlich das Laufwerk.
 
UltiSalamander schrieb:

Das klappt leider nicht.


Xcopy und Robocopy fallen weg, da seid ihr glaub ich auf dem Holzweg. Die Kopieren nämlich beide nur UND dann löschen sie (bei /move).
Das dauert zu lange, könnt ihr ja selber ausprobieren, wenn ihr mal eine große Datei woanders hinkopiert (selbe Partition).
Das dauert lange. Verschieben hingegen geht sofort, weil einfach nur der ToC auf der Platte geändert wird.

Code:
for %%i in (*) do move "%%i" D:\Bilder_Upload
"%%i" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

Ich denke aber, die Lösung liegt bei for %
Ergänzung ()

rheno456 schrieb:
Ganz einfach


move D:\Bilder\*.* D:\Bilder_Upload

Geht und es geht sau schnell D ist natürlich das Laufwerk.

Nein, das geht leider nicht ;-) Probier mal die Befehle aus, bevor du sie vorschlägst.
 
So eben mit Win8.1 getestet:

move r:\t r:\test3

Verschiebt den Ordner t inklusive alle Dateien und Unterverzeichnise mit Dateien zu Ordner test3
 
Ehrlich ?, einfach mal die beiden Ordner erstellen, paar dateien in einen Ordner rein und dann mal in der CMD ausführen
cb.jpg
 
Matzegr schrieb:
So eben mit Win8.1 getestet:

move r:\t r:\test3

Verschiebt den Ordner t inklusive alle Dateien und Unterverzeichnise mit Dateien zu Ordner test3

Aber ich möchte den Ordner \t ja gar nicht verschieben, sondern nur alle Unterverzeichnisse, die sich darin befinden.
Geht das auch?
Ergänzung ()

rheno456 schrieb:
Ehrlich ?, einfach mal die beiden Ordner erstellen, paar dateien in einen Ordner rein und dann mal in der CMD ausführen
Anhang anzeigen 385302

Erstell mal ein paar Ordner mit Dateien drinne und versuch das nochmal, wird kläglich scheitern :D
 
xxMuahdibxx schrieb:

Danke, in meinem 1. Post steht, dass ich move schon ausprobiert habe. Das führt nicht zum Erfolg.

Wie soll der Syntax da aussehen, wenn du alle Unterverzeichnisse mit Dateien von Punkt A nach Punkt B verschieben willst?
move D:\Bilder D:\Bilder_Upload

Dieser Befehl verschiebt den Ordner Bilder, das möchte ich aber doch gar nicht, sondern nur die Unterverzeichnisse verschieben.
Also weiter:

move D:\Bilder\*.* D:\Bilder_Upload

Das geht auch nicht. Fehler

move D:\Bilder\* D:\Bilder_Upload

Das geht auch nicht.
 
jo so will er nicht mit Unterverzeichnissen Arbeiten .
 
desnatavo schrieb:
Aber ich möchte den Ordner \t ja gar nicht verschieben, sondern nur alle Unterverzeichnisse, die sich darin befinden.
Geht das auch?

Getestet und funktioniert:
Code:
for /d %i  in (r:\vlctest\*) do move %i r:\test10

Also müßte bei dir

Code:
for /d %i in (M:\Bilder\*) do move %i M:\Bilder_Upload
funktionieren



Nachtrag: In einer .bat muß statt %i ein %%i stehen.
 
Zuletzt bearbeitet:
Matzegr schrieb:
Getestet und funktioniert:
Code:
for /d %i  in (r:\vlctest\*) do move %i r:\test10

Also müßte bei dir

Code:
for /d %i in (M:\Bilder\*) do move %i M:\Bilder_Upload
funktionieren



Nachtrag: In einer .bat muß statt %i ein %%i stehen.

Danke, das klappt! Bei Ordnernamen mit Freizeichen verweigert er aber den Dienst.

Code:
C:\Windows\system32>move M:\Bilder\Spanien Urlaub M:\Bilder_Upload
Syntaxfehler.
Ergänzung ()

Grantig schrieb:
Probiers mal mit der Powershell, das sollte klappen:
Code:
ls "M:\Bilder" | % { move -Path $_.FullName -Destination "M:\Bilder_Upload"}

Danke!! Das hat geklappt. In der Batch Datei wollte er es aber nicht mehr ausführen.
Dachte hiermit könnte ich die Bestie bezwingen.

Code:
powershell
ls "M:\Bilder" | % { move -Path $_.FullName -Destination "M:\Bilder_Upload"}
exit

Nachdem Ausführen bin ich aber auf der powershell bash, er führt es nicht aus, also habe ich es geänder in zwei getrennte Instanzen (mit Hilfe von Google). Die Batch Datei ruft das separate Powershell Script auf und das führt dann das Verschieben aus. Eine echt krass schwere Geburt für etwas vermeintlich ganz simples.

Batch Datei:
Code:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'M:\script.ps1'"

Powershell Script (script.ps1)
Code:
    ls "M:\Bilder" | % { move -Path $_.FullName -Destination "M:\Bilder_Upload"}
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben