Comment renommer les fichiers dans un lot avec un compteur?

J'ai 14 000 images triées en fichiers par année et par mois mais prises avec plusieurs caméras. Je souhaite que le nom du fichier reflète la date à laquelle la photo a été prise.

Par exemple, toutes les photos prises le 16 octobre 1998 sont dans un dossier appelé 1998\10 October\19981016 .

Je veux que toutes les images soient nommées 19981016_0001 19981016_0002, etc.

Je peux arriver au point où il liste le dossier que je souhaite modifier, mais je ne peux pas vraiment le modifier. Toutes mes images sont .jpg.

J'ai créé un fichier temporaire de copies au cas où je l'ai dérangé. J'ai commencé par taper:

 cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp" 

Ensuite, après avoir réussi à charger mon fichier, j'ai utilisé une formule que j'ai trouvée sur ce forum.

 ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif} 

L'erreur que j'ai reçue m'a dit

 Unexpected token ' .19981016' in expression or statement. At line:1 char:12 + $.19981016 <<<< 

L'erreur a été répétée plusieurs fois

J'ai trouvé plusieurs formules sur le Web, mais la plupart des fichiers créés qui numéroteraient entre parenthèses par exemple les vacances (1) .jpg Je veux un compteur à quatre chiffres après un trait de soulignement à la fin de ma date. C'est-à-dire 19981016_0001

Je pense que vous avez modifié la formule et fait au moins deux erreurs:

  • Rename-Item $_ -> sinon PowerShell tentera de renommer le fichier nommé "_"
  • "$($_.Directory.Name)_{0:D9}.jpg" -f $i++ – vous devez saisir le nom du répertoire de l'objet actuel, et pour le formatage – il est plus facile d'utiliser le format D #, plus facile de compter combien Les chiffres que vous obtenez en fin de compte …