Windows renommer en masse le nom de fichier intermédiaire via CLI?


13

Fichiers originaux

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt

Sortie désirée

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt

Un seul fichier peut être renommé facilement avec ren.

ren "File 2 - Example.txt" "File 02 - Example.txt"

Serait-il possible de le renommer en bloc avec Windows renou un renameoutil?


1
Bel utilitaire gratuit pour rendre ce type de tâche facile .... bulkrenameutility.co.uk/Main_Intro.php
Moab

Je suis d'accord. Je peux nommer de nombreuses solutions basées sur l'interface graphique pour cela, et je me demande pourquoi l'insistance sur CLI
Mawg dit de réintégrer Monica le

@Mawg, pouvez-vous faire des scripts avec ces outils GUI?
Sabrina

Je pourrais - en utilisant AutoIt - mais le recommanderais probablement contre :-) Je me demandais simplement s'il y avait une exigence difficile pour CLI, et maintenant il semble que ce soit le cas. Merci d'avoir clarifié
Mawg dit réintégrer Monica le

Réponses:


13

Serait-il possible de le renommer en bloc avec Windows ren ou l'outil de renommage?

Oui, mais cela nécessite un fichier batch.

test.cmd:

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal

exemple:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free

Lectures complémentaires


17

Cette doublure PowerShell étendra tous les numéros du nom de fichier à deux endroits .PadLeft(2,'0'):
(et laisse les numéros avec plus d'endroits intacts)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}

être sur le sujet, enveloppé dans un fichier de ligne / batch cmd:

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"

Pour être prudent avant d'exécuter les commandes, ajoutez soit

  • -Confirm qui demande avant de renommer
  • -WhatIfqui répertorie tous rebaptise serait exécuter sans paramètre

juste devant le dernier "


3

Edit: Je viens de remarquer que cette question concerne spécifiquement le changement de nom à partir de la ligne de commande, donc elle ne répond pas directement à la question ... Je vais la garder pour l'instant, en espérant qu'elle sera utile pour les autres.


Le gestionnaire de fichiers Total Commander dispose d'un excellent outil de renommage en masse. Il comprend de nombreuses fonctionnalités, y compris l'aperçu de changement de nom, différents masques de changement de nom, les expressions régulières, le changement de nom des fichiers dans toute la hiérarchie des dossiers, et bien plus encore. En même temps, il est assez facile à utiliser.

Voici une capture d'écran pour démontrer son utilisation:

Exemple de multi-renommage de Total Commander

Pas à pas:

  1. Téléchargez et exécutez Total Commander.
  2. Nativate dans le dossier avec les fichiers à renommer.
  3. Marquez les fichiers à renommer:
    • Option 1 - Ctrl+A pour marquer tous les fichiers du dossier.
    • Option 2 - Marquez les fichiers un par un, en utilisant le Spacebouton droit de la souris ou la souris.
    • Option 3 - Ouvrez "Rechercher des fichiers" ( Alt+ F7), tapez *.txtdans la case "Rechercher", cliquez sur "Lancer la recherche", appuyez sur "Feed to listbox", puis marquez les fichiers avec Ctrl+ A. Utilisez cette technique si vous souhaitez renommer des fichiers également dans des dossiers internes.
  4. Appuyez sur Ctrl+ Mpour ouvrir l'outil Multi-Rename.
  5. Définissez les valeurs souhaitées dans les cases "Rechercher" et "Remplacer par". Si vous utilisez une expression régulière, cochez la case RegEx.
  6. Cliquez sur "Démarrer!".

-2

ren *.bat *.txttravaillera pour renommer les extensions sur tous les fichiers correspondants en conservant l'autre partie du nom. Ne pourriez-vous pas en abuser pour exécuter une séquence de rencommandes?

  • ren "File *" "File 0*"
  • ren "File 00*" "File 0*"
  • (gérer les restes pendants comme File 022 - Example.txt

1
Ce n'est PAS utile, avez-vous vérifié ce que fera votre commande? 2-> 0, 22-> 02, 15-> 05.
LotPings

Non, je n'ai pas de système d'exploitation Windows, je ne l'ai donc pas essayé. Mais je me souviens depuis des années que REN peut le faire. Je voulais quand même faire une suggestion.
Douglas s'est tenue le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.