Command en batch pour copier -> renommer -> coller un fichier...

Command en batch pour copier -> renommer -> coller un fichier... - Shell/Batch - Programmation

Marsh Posté le 27-06-2014 à 03:44:13    

...Et via le menu contextuel !
 
Je viens de perdre deux 10eme de chaque oeil en essayant de comprendre ici et là...
 
Je voudrais une commande batch, exécutable en faisant un clic droit sur n'importe quel fichier, et qui permettrait de :
- copier le fichier exemple Blabla.pdf, qui se trouve dans c:\folder1\folder2\blabla.pdf
- le renommer avec des variables de date, du répertoire d'origine et enfin une variable demandée dans l'exécution du batch "question" : YYYYMM_folder1_question.pdf
 
Nous avons besoin de déposer une copie des fichiers que nous traitons dans un répertoire de travail, pour nous y retrouver ils doivent être nommés avec une nomenclature bien précise YYYYMM_NomClient_Operation.pdf
YYYYMM est généré dynamiquement à partir de la date système
NomClient correspond toujours au répertoire du répertoire hébergeant le fichier à copier
Operation est saisi par l'opérateur effectuant la copie, au moment du lancement du batch.
 
Jusqu'à maintenant, cette opération était faite manuellement.
Cependant nous constatons de nombreuses erreurs de saisie ou un respect approximatif de la convention de nommage.
D'où mon idée de l'exécuter automatique via un batch lancé avec un clic droit de la souris sur un fichier quelconque à renommer.
 
Je précise que le fichier de batch sera stocké ailleurs et que c'est bien le répertoire du fichier source qui doit être pris en compte.
 
Merci d'avance pour votre aide que j'ai hâte de lire pour enfin comprendre comment faire !


Message édité par mabouilla le 27-06-2014 à 03:46:09
Reply

Marsh Posté le 27-06-2014 à 03:44:13   

Reply

Marsh Posté le 27-06-2014 à 09:30:44    

Reply

Marsh Posté le 27-06-2014 à 09:42:53    


Han, j'ai cru que tu lui répondais sérieusement :o [:cupra]

 

Sinon, voici un petit lien qui explique comment ajouter une entrée dans le menu contextuel de Windows. J'ai testé sous Windows 7 et ça marche ;)

 

Concernant le script batch, je ne sais pas si tu as besoin de plus d'aide :??:

 

Edit : pour être plus précis, ce lien explique aussi comment ajouter le passage d'arguments dans un menu contextuel :jap:


Message édité par Soileh le 27-06-2014 à 09:48:37

---------------
And in the end, the love you take is equal to the love you make
Reply

Marsh Posté le 27-06-2014 à 16:49:02    

Ah ouais quand même !
Du puriste de bagnole, de moto, de films d'action j'avais vu... Mais de lunette, ça c'est puissant !!!
 
En fait, là où je cale un peu c'est :
 
- Comment récupérer le nom du répertoire parent du répertoire dans lequel est le fichier cible de la copie.
J'ai trouvé comment récupérer le nom du répertoire dans lequel est le fichier mais pas son père.
 
- Comment créer un nom à partir de différente variables :
nom1=YYYYMM (obtenu avec la variable globale date et les parametres qui vont bien)
nom2=foldername (obtenu je ne sais pas encore comment)
nom3= variable entrée par opérateur.
 
copy blabla.pdf %nom1%%nom2%%nom3%.pdf ne semble pas marcher.
 
En tout cas merci pour le lien qui me sera bien utile !

Reply

Marsh Posté le 27-06-2014 à 21:49:11    

mabouilla a écrit :


- Comment récupérer le nom du répertoire parent du répertoire dans lequel est le fichier cible de la copie.
J'ai trouvé comment récupérer le nom du répertoire dans lequel est le fichier mais pas son père.


Le seul moyen que j'ai trouvé c'est de rajouter \.. à ta variable pour retrouver le répertoire parent de ton répertoire :/
Edit fictif : je pense pas que ça te convienne en voyant comment tu vas l'utiliser :/
 

mabouilla a écrit :


- Comment créer un nom à partir de différente variables :
nom1=YYYYMM (obtenu avec la variable globale date et les parametres qui vont bien)
nom2=foldername (obtenu je ne sais pas encore comment)
nom3= variable entrée par opérateur.
 
copy blabla.pdf %nom1%%nom2%%nom3%.pdf ne semble pas marcher.
 
En tout cas merci pour le lien qui me sera bien utile !


  • Pour nom1 : %date:~6,4%%date:~3,2%
  • Je suis en train de regarder comment obtenir cela  [:-noemie-]  
  • Ce code fonctionne normalement :
Code :
  1. set /p valeur=Saisir une valeur :
  2. echo %valeur%


 
:jap:


---------------
And in the end, the love you take is equal to the love you make
Reply

Marsh Posté le 28-06-2014 à 04:34:12    

Merci beaucoup.
Reste à isoler juste le nom d'un repertoire parent à deux ou trois niveau plus haut pour un fichier.
C:\Folder1\Folder2\Folder3\Test.txt
Dans mon cas, il faudrait récupérer une variable "Folder1" sachant que Folder1 n'est pas toujours juste après la lettre du lecteur...
Bref, compliqué, mais je continu à chercher !
 
En tout cas merci beaucoup.

Reply

Marsh Posté le 28-06-2014 à 09:29:31    

mabouilla a écrit :

Merci beaucoup.
Reste à isoler juste le nom d'un repertoire parent à deux ou trois niveau plus haut pour un fichier.
C:\Folder1\Folder2\Folder3\Test.txt
Dans mon cas, il faudrait récupérer une variable "Folder1" sachant que Folder1 n'est pas toujours juste après la lettre du lecteur...
Bref, compliqué, mais je continu à chercher !
 
En tout cas merci beaucoup.


En fait, pour ton nom de répertoire, tu veux récupérer celui qui est rattaché directement à la racine ? Ou celui situé à n'importe quel niveau ?


---------------
And in the end, the love you take is equal to the love you make
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed