Le renvoi de fichier par lots avec le suffixe 01 02 03 04 et ainsi de suite

J'ai beaucoup de fichiers avec un mot-clé similaire

computer-stock-photo.jpg computer-stock-picture.jpg computer-picture.jpg 

Ce que je veux faire, c'est suffixe en série à 2 chiffres comme

 computer-stock-photo-01.jpg, computer-stock-picture-02.jpg, computer-picture-03.jpg 

En outre, le script batch devrait fonctionner avec n'importe quelle extension comme jpg ou png.

Le script que j'ai essayé:

 @echo off setlocal disableDelayedExpansion set "chars=0123456789" for /f "eol=: delims=" %%F in ('dir /b /ad *.jpg') do call :renameFile "%%F" exit /b :renameFile setlocal enableDelayedExpansion :retry set "name=" for /l %%N in (1 1 8) do ( set /a I=!random!%%36 for %%I in (!I!) do set "name=!name!!chars:~%%I,1!" ) echo if exist !name!.jpg goto :retry endlocal & ren %1 %name%.jpg 

Le script ci-dessus ne fonctionne que pour jpg et ajoute des nombres aléatoires non sérieux.

Je crois que vous voudrez publier cette question dans Stack Overflow si vous souhaitez que quelqu'un vous aide à écrire un script à vos fins. Pour suivre les grandes lignes de ce forum, je vais vous fournir un lien vers un programme appelé Bulk Rename Utility. Il a été recommandé dans le passé par d'autres utilisateurs de Stack Exchange et semble correspondre à vos critères.

http://www.bulkrenameutility.co.uk/Main_Intro.php

Renommer le fichier avec le suffixe 01 02 03 04 etc.

Jetez votre script inapproprié. Vous n'avez pas besoin de nombres aléatoires et ne gère pas les fichiers .png .

J'ai écrit un nouveau script à partir de zéro comme c'était plus facile que d'essayer de corriger votre script brisé.

Utilisez le fichier de commandes suivant:

 @echo off setlocal enabledelayedexpansion rem initialise counter set /a "x=1" rem process jpg and png files for /f "usebackq tokens=*" %%i in (`dir /b *.jpg *.png`) do ( rem split into name and extension set _name=%%~ni set _ext=%%~xi rem pad the counter to 2 digits set "y=0!x!" set "y=!y:~-2!" rem do the rename ren "%%i" "!_name!-!y!!_ext!" increment counter set /a "x+=1" ) endlocal 

Limites:

  • Ne traite que les processus .jpg et .png dans le répertoire de travail actuel.
  • Traite seulement jusqu'à 99 fichiers.

Lecture complémentaire

  • Un index AZ de la ligne de commande CMD de Windows – Une excellente référence pour toutes les fonctionnalités de Windows cmd.
  • Dir – Affiche une liste de fichiers et de sous-dossiers.
  • Expiration permise – Expansion retardée entraînera une expansion des variables au moment de l'exécution plutôt que du temps d'analyse.
  • Pour / f – Commande Loop contre les résultats d'une autre commande.
  • Paramètres – Un argument de ligne de commande (ou paramètre) est une valeur passée dans un script de lot.
  • Set – Affiche, définit ou supprime les variables d'environnement CMD. Les modifications effectuées avec SET resteront uniquement pendant la durée de la session CMD actuelle.
  • Variables – Extraire une partie d'une variable (sous-chaîne).