7 votes

Comment omettre des caractères au début d'un nom de fichier lors de sa renommer dans le cmd de Windows ?

Je voudrais savoir comment omettre le premier caractère d'un nom de fichier tout en renommant le fichier dans Windows cmd.

Dans mon cas, j'ai une série de fichiers comme:

#test1.txt
#test2.txt
#test3.txt
#test4.txt
#test5.txt

Je voudrais renommer tous les fichiers dans l'invite cmd comme

test1.txt
test2.txt
test3.txt
test4.txt
test5.txt

Les fichiers sont dans c:\mesfichiers\.

8voto

Andrew Ion Points 81

Oubliez les scripts compliqués pour cela.

rename est une commande très ancienne et jamais correctement terminée. Si vous ne l'utilisez pas correctement, le résultat pourrait vous surprendre.

Par exemple, pour supprimer un préfixe abcd de abcd1.txt, abcd2.txt, abcd3.txt, etc. afin d'obtenir 1.txt, 2.txt, 3.txt, il suffit de taper

rename "abcd*.txt" "////*.txt"

Vous avez besoin du même nombre de / que le nombre de caractères initiaux que vous souhaitez supprimer.

Utilisez des guillemets doubles pour les deux arguments.

J'ai copié ce passage de quelqu'un d'autre sur un autre fil de discussion.

Remarquez que cela gère correctement les noms de fichiers avec des espaces.

4voto

moe3144 Points 1

J'ai rencontré un problème similaire il y a quelques mois. Il s'est avéré que supprimer des caractères au début du nom de fichier est un peu délicat en utilisant DOS. J'ai trouvé ce site qui proposait une bonne solution pour cela.

Il vous suffit de cd dans le répertoire contenant les fichiers et d'exécuter ces deux commandes.

REN *.* " *.*" 
FOR %v IN (*.*) DO REN "%v" %v

Cela devrait remplacer le premier caractère dans tous les noms de fichier.

L'idée est de remplacer le nombre de caractères indésirables par des espaces en utilisant la première commande REN puis de supprimer ces espaces en utilisant la boucle FOR et la commande REN.

1voto

Muad'Dib Points 11

Je vais développer le post d'Andrew Ion. Il est élégamment simple, mais il n'explique pas complètement la flexibilité de la commande.

Je nomme fréquemment certains types de fichiers avec un préfixe numérique (et entoure le préfixe de crochets pour faciliter la lecture du nombre), comme ces trois :

[#001] Aardvark.txt

[#002] Badger.txt

[#003] Civet.txt, etc.

Si je veux supprimer le préfixe (retirer les 7 premiers caractères, y compris l'espace), je peux taper ce qui suit :

ren "[#???] *.txt" "///////*.txt"

Cela va renommer uniquement les fichiers qui commencent par [#, ont un ] et un espace comme 6ème et 7ème caractères et se terminent par .txt. Cette commande va renommer les fichiers ci-dessus en Aardvark.txt, Badger.txt, Civet.txt, etc.

Remarquez que si vos noms de fichiers après le préfixe numérique ne sont pas uniques (par exemple [#001] Aardvark.txt et [#002] Aardvark.txt), alors la commande ne renommera que un des fichiers, sautera le renommage de l'autre, et répondra avec l'erreur : "Un nom de fichier en double existe, ou le fichier ne peut être trouvé."

Assurez-vous donc que chaque fichier a un nom unique sans le préfixe avant d'exécuter la commande.

Aussi, bien que la plupart des programmes de renommage (bons) vous donnent un aperçu de à quoi ressembleront les nouveaux noms de fichiers avant d'appliquer le changement, en utilisant cette commande Renommer va changer les noms de fichiers dès que vous appuyez sur la touche Entrée. Je recommande toujours de faire des copies de vos fichiers avant de les renommer. Ensuite, si le renommage se déroule comme vous l'avez prévu, vous pouvez supprimer les fichiers avec les noms originaux. Sinon, vous pourriez vous retrouver avec des noms de fichiers complètement erronés, et aucun moyen de les ramener à leurs noms originaux (à moins d'avoir des sauvegardes). VOUS ÊTES PRÉVENUS ! :-)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X