Comment faire pour renommer par lots les fichiers dans un répertoire à partir d'une liste de noms dans un fichier texte

Je voudrais utiliser Power Shell ou un fichier de commandes pour renommer plusieurs fichiers dans un dossier basé sur une liste dans un fichier texte. Essentiellement, je veux ajouter les noms de fichiers avec l'auteur au nom de famille (que j'ai stocké dans un fichier texte séparé).

E. g. Actuellement, j'ai:

C:\myfiles

9-ART-2013.pdf
4-EGO-2013.pdf
2-ART-2013.pdf

Mon fichier texte (dans le même ordre que les fichiers):

C:\myfiles

_Smith
_Jenkins
_McMaster

Je veux que les fichiers sont renommés comme suit:

9-ART-2013_Smith.pdf
4-EGO-2013_Jenkins.pdf
2-ART-2013_McMaster.pdf

J'ai vu des problèmes similaires où les gens veulent récursive de renommer les fichiers, mais ils sont toujours à l'aide d'un générique commun ajoutant élément comme l'ajout d'un trait de soulignement ou de pré-pendantes nom de dossier, etc.

par exemple https://serverfault.com/questions/6268/easy-way-to-rename-all-files-in-a-directory-in-windows

  • Comment est le script censé déterminer la ligne dans le fichier texte correspond au nom de fichier qui?
  • Les fichiers sont triés dans l'annuaire? De quelle manière? Reverse-alphabetic selon votre liste?
  • J'ai été tout simplement l'intention d'manuellement, assurez-vous que l'élément de commande de mon fichier texte correspond au dossier de commande (assending). J'ai un fichier excel avec une colonne pour le nom de fichier et une autre colonne pour le correspondant author_name.
  • Je viens de réaliser que j'ai encadré la solution proposée de manière incorrecte. la solution serait plus robuste aux erreurs (correspondant à "nom de fichier" à "l'auteur") pour tout simplement avoir un fichier texte avec un "VIEUX Nom | NOUVEAU-Nom" de la structure. 9-ART-2013.pdf | 9-ART-2013_Smith.pdf 4-EGO-2013.pdf | 4-EGO-2013_Jenkins.pdf 2-ART-2013.pdf | 2-ART-2013_McMaster.pdf Ensuite seulement je pouvais appeler chaque ligne du fichier texte à l'aide de "For /f" et "Ren". J'ai essayé les solutions ci-dessous et saisir des commentaires ci-dessous.
  • Permettez-moi de reformuler votre problème. Il est préférable de stocker les deux colonnes de votre feuille excel réparti côte à côte dans un seul fichier texte, peut-être séparés par une virgule. Il est alors facile d'importer ce fichier csv dans un tableau d'objets personnalisés, et le tuyau à une boucle qui calcule le nouveau nom de chaque élément, puis effectue un changement de nom-Objet pour obtenir le résultat. À partir de votre précédent commentaire, on dirait que vous avez été dirigé dans cette direction.
  • Le Dumping d'une table dans un fichier CSV est facile dans Excel.

InformationsquelleAutor TimK | 2013-11-18