CMD Befehl kopieren und löschen klappt nicht

JensGo

Newbie
Registriert
März 2023
Beiträge
3
Hallo.
Ich möchte aus einem Ordner in einem Netzwerk ALLES kopieren und in einen anderen Ordner aus dem Netzwerk verschieben.
Danach möchte ich den 1. Ordnerinhalt (woraus ich alles kopiert habe) komplett löschen.
(mehrere Dateiarten)

Folgende Idee hatte ich:

robocopy "k:\Test1\Ordner\Ordner JensAbc" "k:\Test1\Ordner\Ordner Jens" /MIR >Nul
timeout /t 3
del "k:\Test1\Ordner\Ordner JensAbc\"
del "k:\Test1\Ordner\Ordner JensAbc\."

Das Kopieren scheint zu klappen, ABER den alten Ordner leer zu machen scheitert leider.

Hat jemand eine Idee?

(und -ja- in dem Namen der Ordner ist ein Freiraum)

Danke euch
 
Geht stattdessen nicht einfach "move"? Von deiner Beschreibung scheint robocopy mit seinen vielen Möglichkeiten nicht gebraucht zu werden.

del "C:\Temp\Test\(stern).(stern)"
Funktioniert bei mir, wenn nur die Dateien und nicht der Order weg sollen
 
Zuletzt bearbeitet:
cvzone schrieb:
Von deiner Beschreibung scheint robocopy mit seinen vielen Möglichkeiten nicht gebraucht zu werden.
Zu mal er ja Spiegelt /MIR ein /MOV wäre da wirklich das besten
Ich mache es auf Arbeit ählich aber mit /E und lösche dann das Verzeichnis wenn ich sicher bin das Datenkorrekt übertragen wurden, das prüfe ich mit einem Flagfile.
JensGo schrieb:
Das Kopieren scheint zu klappen, ABER den alten Ordner leer zu machen scheitert leider.

Hat jemand eine Idee?
willst du die Dateien IN dem Verzeichnis löschen? Wenn ja fehlt dann nicht ein * am Ende des Pfades?
Ansonsten kannst du ja mit rmdir /S /Q das ganze Verzeichnis entsorgen.
 
Ein Robocopy mit /mir und /move währe aber deutlich sicherer, sonst bekommst du einen Fehler beim Kopieren und löscht anschließend die Dateien, ohne sie kopiert zu haben.
 
  • Gefällt mir
Reaktionen: cvzone
JensGo schrieb:
Das Kopieren scheint zu klappen, ABER den alten Ordner leer zu machen scheitert leider.
"Scheitern" kann im Kontext von Computern, dem Betriebssystem und der Eingabeaufforderung einfach so viele verschiedene Ausprägungen haben, dass dieser Satz maximal sinnlos ist.

del löscht zunächst einmal nur den Inhalt, fragt jedoch ohne den Parameter /Q nach ob gelöscht werden soll oder nicht. Mit /Q wird ein implizites Ja angenommen und ohne wenn und aber gelöscht. Unterverzeichnisse werden jedoch nicht gelöscht. /S löscht auch in Unterverzeichnissen, die Verzeichnisse selbst bleiben aber drin, leer.

rmdir oder kurz rd löscht wiederum Verzeichnisse. Ohne Parameter muss das Verzeichnis leer sein, um gelöscht zu werden, mit /S werden hingegen alle Dateien und alle Unterverzeichnisse im Zielverzeichnis gelöscht, inkl. des Ziels selbst. rd "k:\Test1\Ordner\Ordner JensAbc" /S löscht also den Ordner "Ordner JensAbc" vollständig, auf Bestätigung. Fügt man ein /Q hinzu, entfällt auch hier die Bestätigung und "Ordner JensAbc" ist von jetzt auf gleich weg.

Abgesehen davon sollte robocopy den Job wie von meinen Vorrednern bereits beschrieben aber auch ohne explizites del bzw. rd hinterher löschen.


@StefanArbe : >nul schreibt alle Ausgaben des Befehls in das nul-device, also ins Nirvana.
 
Gar nicht so einfach.....

MOVE /Y "k:\Test1\Ordner\Ordner JensAbc" "k:\Test1\Ordner\Ordner Jens"

Habe ich probiert und der "Ordner JensAbc" wird komplett ausgeschnitten und in "Ordner Jens" verschoben.

Das möchte ich NICHT!

Was genau muss ich eingeben, damit NUR DER INHALT des Ordners ausgeschnitten wird/verschoben wird?
 
Nicht immer gibt es für jede erdenkliche Situation einen exakten Befehl. MOVE macht nun mal genau das, es verschiebt die angegebenene Quelle an ein neues Ziel, nicht nur den Inhalt, sondern die gesamte Quelle. Möchte man nur den Inhalt, muss man nur den Inhalt auswählen (zB mit \.). Ist der Inhalt komplex, also diverse Verzeichnisebenen, ist auch das nicht unbedingt ausreichend. Irgendwann kommt man nun mal in den Bereich, in dem man sich eine Batch-Datei oder ein PowerShell-Skript schreiben muss, das beispielsweise durch die Dateien/Unterverzeichnisse iteriert und jeweils einen eigenen Move ausführt.

Eine simple Lösung könnte sein, das komplette Quellverzeichnis mit allen Inhalten wie bereits gezeigt mit MOVE verschieben und anschließend ganz banal den Quellordner mittels md "k:\Test1\Ordner\Ordner JensAbc" wiederherzustellen, leer.
 
Guten Morgen :)

Nach nun unzähligen Versuchen habe ich genau das, was ich wollte!

Vielen lieben Dank an alle, die mir geholfen haben!

Die Lösung

robocopy /mov "k:\Test1\Ordner\Ordner JensAbc" "k:\Test1\Ordner\Ordner Jens"

Kopiert und löscht danach brav die Dateien :)
 
Zurück
Oben