Command en batch pour copier -> renommer -> coller un fichier... - Shell/Batch - Programmation
Marsh Posté le 27-06-2014 à 09:30:44
ReplyMarsh Posté le 27-06-2014 à 09:42:53
Han, j'ai cru que tu lui répondais sérieusement
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
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 !
Marsh Posté le 27-06-2014 à 21:49:11
mabouilla a écrit : |
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 : |
Code :
|
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.
Marsh Posté le 28-06-2014 à 09:29:31
mabouilla a écrit : 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 ?
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