Frage
Kennt jemand eine Möglichkeit zum Verschieben von Dateien und Ordnern, für die das Attribut "Versteckt", "System" oder "Schreibgeschützt" über die Befehlszeile oder eine Batchdatei festgelegt wurde? (Nein, zuerst die Attribute entfernen ist keine Option, da es keine praktische Möglichkeit gibt, festzustellen, welche Attribute festgelegt wurden, um sie nach dem Verschieben zurückzusetzen.)
(Fehlgeschlagene Versuche
Die Verwendung des
move
Basisbefehls funktioniert nicht mit Elementen, für die das Attribut " Versteckt" oder "System" festgelegt ist, und aus irgendeinem Grund sind keine Schalter zum Angeben von Attributen vorhanden, wie dies bei den Befehlendir
und der Fall istdel
.Ich habe versucht, ein von mir geschriebenes Dienstprogramm zu verwenden, das die Dateioperationsfunktion der Shell verwendet, für das jedoch die Verwendung
start /w
von erforderlich ist, um zu verhindern, dass die Batchdatei im Voraus ausgeführt wird, und das sich aus irgendeinem Grund über die Unterstützung langer Dateinamen beschwert.Ich habe versucht , mit
robocopy
, aber es zunächst kopiert die Dateien und löscht dann die Originale , anstatt einfach zu bewegen , die Quelle (die Ergebnisse in einer frustrierenden Verzögerung auch bei dem übermäßige Ausgang umgeleitetnul
).
(Überraschenderweise scheinen nur wenige Leute jemals versteckte Dateien von der Kommandozeile verschieben zu müssen. Alles, was ich finden konnte, war diese eine Person , die den Versuch abgebrochen hat.)
quelle
\temp
Verzeichnis erstellen , warum nicht einfach das%1
Verzeichnis umbenennen / verschieben\temp
? Oder ist das nur der vereinfachte Fall?Antworten:
Ich konnte schreibgeschützte, versteckte Dateien mithilfe von MV.EXE aus den GNU for Win32-Dienstprogrammen erfolgreich verschieben. Die Zieldatei behält die schreibgeschützten, ausgeblendeten Attribute bei.
Sie müssen das gesamte Paket herunterladen:
http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php
quelle
--
; es denkt, dass es ein Argument anstelle eines Dateinamens ist.mv .\--1.txt newdirectory
--foo
zum Bezeichnen von Befehlszeilenargumenten verwendet. Um Dateinamen zu unterstützen, die mit beginnen--
, akzeptieren die meisten von ihnen ein spezielles Argument--
, um das Ende der Befehlszeilenargumente und den Anfang der Dateinamen zu kennzeichnen. Ich bin nicht sicher, obmv
es sich um einen dieser Befehle handelt, aber wenn ja, sollten Sie in der Lage sein:mv -- --weirdFileName.gotcha betterFileName.txt
Ich habe dies gerade erreicht mit:
quelle
robocopy
, aber es zunächst kopiert die Dateien und löscht dann die Originale , anstatt einfach zu bewegen , die Quelle (die Ergebnisse in einer frustrierenden Verzögerung, ...).“Powershell v2:
Verschiebt auch versteckte Dateien mit versteckten und festgelegten Systemattributen. Funktioniert mit Dateien, die mit '-' beginnen.
quelle
Tab
, um einen Dateinamen zu vervollständigen, dauert> 1 Sekunde, was in Ordnung ist eine Größenordnung langsamer als incmd
. Also , wenn Sie bereit sind , mir ein neues System zu kaufen, dann ist PS geht nicht zu Hilfe).mv .oldfile .newfile
Wie wäre es damit?
quelle
Wir hatten PowerShell und den
mv
Befehl. Der Vollständigkeit halber lesen Sie hier, wie dies mit dem TCC / LE von JP Software gemacht wird , dessen Befehlemove
undren
eine/a:
Option enthalten, die vielen Befehlen gemeinsam ist, mit denen Verzeichnisse nach Dateien durchsucht werden, auf die gearbeitet werden soll:Weitere Lektüre
quelle