heinz.rudolf
Goto Top

Verschieben von Dateien unter Windows

Guten Tag,

ich habe eine Frage, zu der ich trotz Recherchen noch keine Antwort gefunden habe.
Daher erhoffe ich mir Antworten in diesem Forum.

Meine Versuche liefen unter Server 2012R2 – lokal und auf einem Netzlaufwerk (verbunden von einer Qnap)

Wenn ich über den Windows Explorer große Dateien von Ordner A nach Ordner B verschiebe geht das in Echtzeit.
Beide Ordner befinden sich auf dem gleichen Netzlaufwerk oder/und auf der gleichen Partition.

Wenn ich dasselbe über ein Skript (z.B. Robocopy /move oder über SyncBackPro) versuche, wird zunächst kopiert und anschließend gelöscht.
(Beispiel: robocopy w:\a\ w:\b\ /mov)

Beim Verschieben von großen oder vielen Dateien ist das dann per Skript sehr zeitaufwändig.

Was ist beim Verschieben mit dem Explorer anders als wenn ich es mit einem Skript mache, fehlt mir ggf. der richtige Parameter beim Aufruf?

vielen Dank vorab für die Hilfe.

Content-Key: 430317

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

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

Member: emeriks
Solution emeriks Mar 20, 2019 updated at 10:22:01 (UTC)
Goto Top
Hi,
ein Blick in die Syntax von Robocopy sagt uns:
/MOVE :: Verschiebt Dateien UND Verzeichnisse
(löscht sie nach dem Kopieren an der Quelle).
Robocopy führt ein Verschieben also immer als "Kopie + Löschen" aus.

Der Explorer oder der "echte" Move-Befehl hingegen verhalten sich so:
  • Ziel auf dem selben Laufwerk? --> Verschieben
  • Ziel auf anderem Laufwerk? --> Kopieren + Löschen

Nimm also das move Kommando statt Robocopy.
Entweder in der Batch
move Quelle Ziel
oder wenn irgendwo als "Ausführen" dann über die CMD
cmd /c move Quelle Ziel

E.
Mitglied: 138810
138810 Mar 20, 2019 updated at 10:34:15 (UTC)
Goto Top
Wenn ich dasselbe über ein Skript (z.B. Robocopy
Deswegen heißt das ja Robocopy und nicht Robomove. face-wink

Wie Emeriks schon schreibt reich zum reinen Verschieben ja move vollkommen aus.
Member: heinz.rudolf
heinz.rudolf Mar 20, 2019 at 11:02:46 (UTC)
Goto Top
Hallo,

vielen Dank für die Antworten. Letztlich musste die Lösung ja so einfach sein face-smile

Nun hat mov recht wenig Optionen und ich kann Dateien nicht nach Datum, Namen oder Größe selektieren.
Kennt ihr ggf. ein Tool das die Möglichkeiten bietet?

Danke
Mitglied: 138810
Solution 138810 Mar 20, 2019 updated at 11:09:42 (UTC)
Goto Top
Powershell natürlich.
https://ss64.com/ps/move-item.html
Member: heinz.rudolf
heinz.rudolf Mar 20, 2019 at 11:28:58 (UTC)
Goto Top
danke - darauf bin ich eben auch gekommen.
Der Link hilft auch sicher weiter.

Gibts evt. noch was grafisches, vielleicht mit Menüführung?
Mitglied: 138810
138810 Mar 20, 2019 at 11:42:15 (UTC)
Goto Top
Zitat von @heinz.rudolf:
Gibts evt. noch was grafisches, vielleicht mit Menüführung?
Wozu? Überflüssig...
Member: heinz.rudolf
heinz.rudolf Mar 20, 2019 at 12:01:06 (UTC)
Goto Top
natürlich Überflüssig, wenn alles mit dem move-item durchgeführt werden kann...
...und wenn alle beteiligten sicher im Umgang mit der Kommandozeile sind.

meine Vorstellung wäre das Abdecken folgender Aufgabe.

verschiebe mir die datei w:\a\datei*.* mit Erstelldatum (nicht Änderungsdatum) heute oder gestern, größer als 1 GB nach w:\b\


ist für mich jetzt nicht so ohne weiteres machbar
Mitglied: 138810
Solution 138810 Mar 20, 2019 updated at 12:27:42 (UTC)
Goto Top
Zitat von @heinz.rudolf:
meine Vorstellung wäre das Abdecken folgender Aufgabe.

verschiebe mir die datei w:\a\datei*.* mit Erstelldatum (nicht Änderungsdatum) heute oder gestern, größer als 1 GB nach w:\b\
Kein Thema ...
gci 'w:\a\datei*' -File | ?{$_.CreationTime -ge (get-date).AddDays(-1).Date -and $_.Length -gt 1GB} | move-Item -Destination 'w:\b\' -verbose -Force  
Member: heinz.rudolf
heinz.rudolf Mar 20, 2019 at 12:55:53 (UTC)
Goto Top
das nenne ich kompetente Unterstützung - herzlichen Dank.

Ich möchte die Hilfsbereitschaft jetzt nicht überstrapazieren, aber wenn du vielleicht das ganze noch alternativ um Dateien CreationTime nicht älter als 14 Stunden (anstatt Änderung heute oder gestern) und eine Logdatei ergänzen könntest (bei Robocopy gehts mit /log:w:\log.txt /tee)?

Nur wenn es nicht zuviel Aufwand ist.
Mitglied: 138810
Solution 138810 Mar 20, 2019 updated at 13:03:52 (UTC)
Goto Top
Start-Transcript 'w:\log.txt' -Append  
gci 'w:\a\datei*' -File | ?{$_.CreationTime -gt (get-date).AddHours(-14)} | move-Item -Destination 'w:\b\' -verbose  
Stop-Transcript
Member: heinz.rudolf
heinz.rudolf Mar 20, 2019 at 13:22:47 (UTC)
Goto Top
Vielen Dank!

damit ist alles geklärt.