Question
Quelqu'un connaît-il un moyen de déplacer des fichiers et des dossiers dont l'attribut masqué, système ou en lecture seule est défini à partir de la ligne de commande ou d'un fichier de commandes? (Non, supprimer les attributs en premier n'est pas une option car il n'y a aucun moyen pratique de savoir quels attributs ont été définis afin de les réinitialiser après le déplacement.)
(Échec) Tentatives
L'utilisation de la
move
commande de base ne fonctionne pas avec les éléments avec le jeu d'attributs caché ou système et pour une raison quelconque, elle n'a pas de commutateurs pour spécifier les attributs comme le font les commandesdir
etdel
.J'ai essayé d'utiliser un utilitaire que j'ai écrit qui utilise la fonction d'opération de fichier du shell, mais qui nécessite d'utiliser
start /w
pour empêcher le fichier de commandes de s'exécuter à l'avance, et il se plaint de la prise en charge des noms de fichiers longs pour une raison quelconque.J'ai essayé d'utiliser
robocopy
, mais il copie d' abord les fichiers, puis supprime les originaux au lieu de simplement déplacer la source (ce qui entraîne un retard frustrant, même avec la sortie excessive redirigée versnul
).
(Étonnamment, il semble que peu de personnes aient jamais eu besoin de déplacer des fichiers cachés de la ligne de commande. Tout ce que j'ai pu trouver, c'est cette seule personne qui a abandonné la tentative.)
la source
\temp
répertoire, pourquoi ne pas simplement renommer / déplacer le%1
répertoire\temp
? Ou est-ce juste le cas simplifié?Réponses:
J'ai pu déplacer avec succès des fichiers masqués en lecture seule à l'aide de MV.EXE à partir des utilitaires GNU pour Win32. Le fichier cible conserve les attributs masqués en lecture seule.
Vous devrez télécharger le package complet:
http://gnuwin32.sourceforge.net/downlinks/coreutils-bin-zip.php
la source
--
; il pense que c'est un argument au lieu d'un nom de fichier.mv .\--1.txt newdirectory
--foo
pour désigner les arguments de ligne de commande. Afin de prendre en charge les noms de fichiers commençant par--
, la plupart d'entre eux acceptent un argument spécial--
pour indiquer la fin des arguments de ligne de commande et le début des noms de fichiers. Je ne sais pas simv
c'est une de ces commandes, mais si c'est le cas, alors vous devriez pouvoir:mv -- --weirdFileName.gotcha betterFileName.txt
Je viens de réaliser cela en utilisant:
la source
robocopy
, mais il copie d' abord les fichiers puis supprime les originaux au lieu de simplement déplacer la source (ce qui entraîne un retard frustrant,…).»Powershell v2:
déplace également les fichiers cachés avec des attributs cachés et système définis. Fonctionne avec les fichiers commençant par «-».
la source
Tab
pour terminer un nom de fichier, il faut plus de 1 seconde, ce qui est une commande). d'amplitude plus lente qu'encmd
mv .oldfile .newfile
Que dis-tu de ça?
la source
Nous avons eu PowerShell et la
mv
commande. Pour être complet, donc, voici comment le faire avec TCC / LE JP Software , dontmove
et lesren
commandes ont tous deux une/a:
option qui est commune à bon nombre de ses commandes que les répertoires analyse des fichiers de fonctionner sur:Lectures complémentaires
la source