Renommer en masse les fichiers en fonction de la première ligne de leur contenu?

-1

J'ai un dossier plein de fichiers .java, que je souhaite renommer. Je veux renommer les fichiers avec la première ligne du contenu de ce fichier, avec des suffixes si la première ligne est la même pour deux fichiers ou plus? J'utilise Windows 10.

Dragon Rouge
la source
Pour ce faire, vous aurez vraiment besoin d'un bon lot ou bash (si vous utilisez Cygwin). Je conseillerais de chercher un utilitaire ou de coder ceci. Je suppose que vous ne trouverez pas beaucoup de batch et / ou de programmeurs ici. Bien que ce ne soit pas difficile, vous pourriez également vous plaindre qu'il ne s'agit pas d'un service de rédaction de scripts.
Dale
Veuillez noter que le super utilisateur n'est pas un service de rédaction de scripts. Si vous nous dites ce que vous avez essayé jusqu'à présent (y compris les scripts que vous utilisez) et où vous êtes bloqué, nous pouvons essayer de vous aider avec des problèmes spécifiques. Vous devriez également lire Comment poser une bonne question? .
DavidPostill
@ DavidPostill En fait, je n'ai aucune expérience en script. Je pensais que ce serait bien de poser la question ici car il y a des questions similaires sur le site. Quoi qu'il en soit, j'ai trouvé un moyen de faire mon travail d'une autre manière. Alors, désolé pour la mauvaise question. :)
RedDragon

Réponses:

0

Ceci est un bidouillage approximatif et il existe probablement de meilleures façons de le faire, mais cela devrait vous donner un point de départ. Tout d’abord, compilez une liste des fichiers dont vous avez besoin avec cette commande:

dir *.java /b >> dirlist.txt

Vous pouvez probablement faire cette partie du script, mais créer cette liste vous permet d’avoir plus de contrôle sur les fichiers sur lesquels vous allez opérer.

A partir de cela, le JScript suivant lira chaque ligne de ce fichier, lira la première ligne de ce fichier et renommera le fichier en conséquence:

var FSO = new ActiveXObject ('Scripting.FileSystemObject');
var fileList = FSO.OpenTextFile ('dirlist.txt');
var nextFileName, nextFile, newFileName;

while (!fileList.AtEndOfStream) {

  nextFileName = fileList.ReadLine();
  nextFile = FSO.OpenTextFile (nextFileName);
  newFileName = nextFile.ReadLine ();
  nextFile.Close();
  FSO.MoveFile (nextFileName, newFileName);

}

Vous devrez effectuer un travail supplémentaire pour gérer les doublons ou les cas où la première ligne doit être nettoyée d’abord, ce qui suppose bien sûr que le script, le fichier dirlist.txt et tous les fichiers .java sont identiques. dossier, mais il devrait vous donner quelque chose à travailler avec.

J'espère que cela t'aides.

xarxziux
la source