Script batch de renommage de masse de fichiers - Shell/Batch - Programmation
Marsh Posté le 17-09-2006 à 21:38:38
Fais une pause pour lire l'erreur renvoyée.
A mon avis, comme le chemin complet des fichiers n'est pas fourni, ren n'a pas trouvé les fichiers à renommer.
Sinon :
set /a i+=1
marche très bien
Marsh Posté le 17-09-2006 à 21:52:19
C'est la commande ren, qui dit que le fichiers spécifié est introuvable à chaque fichier
Marsh Posté le 17-09-2006 à 22:18:08
Bah, j'avais donné la réponse : il fallait le chemin complet pour chacun des fichiers
Marsh Posté le 17-09-2006 à 22:25:19
Ben j'ai fait ça:
Code :
|
Et maintenant l'erreur dit:
La syntaxe de la commande est incorrecte.
Marsh Posté le 17-09-2006 à 22:42:01
Enlève echo off pour identifier la ligne erronée.
Mais tu compliques la vie là : il suffisait de compléter le chemin des fichiers.
Marsh Posté le 18-09-2006 à 16:37:42
Salut,
Code :
|
Ca renomme uniquement les .jpg en partant de img1 .... imgi
A+
Marsh Posté le 18-09-2006 à 17:08:11
Bonjour et merci beacoup
Ca fonctionne chez toi ?
Parce que chez moi non
Marsh Posté le 18-09-2006 à 17:10:15
yess ça fonctionne !!! pourtant y'a rien de compliqué là.
Tu as bien changé le chemin c:\toto par le tiens ?
Tes extensions sont .jpg et pas .jpeg ?
Sinon quelle est l'erreur renvoyé.
Marsh Posté le 18-09-2006 à 17:13:49
Ah, non j'ai pas vu, voilà j'ai ratraper:
Code :
|
Avec ça il me renomme une image img!i!.jpg
Et c'est tout
Marsh Posté le 18-09-2006 à 17:15:53
OK
Dc ça marche ?
Marsh Posté le 18-09-2006 à 17:18:12
Oui
Merci encore
Marsh Posté le 18-09-2006 à 17:21:18
Mais au fait, comment fait on pour annuler setlocal enabledelayedexpansion ?
Marsh Posté le 19-09-2006 à 10:12:47
pourquoi l'annuler ?? mais en réfléchissant un peu --> enable / disable
Marsh Posté le 19-09-2006 à 17:47:15
Donc c'est pas vraiment utilile de mettre endlocal ?
Par ce que j'ai mis les script dans un batch ou il y a d'autre scripts, ça ne poserat pas de probléme pour mes variables ?
Marsh Posté le 19-09-2006 à 18:38:23
Si tu appelles le script en double-cliquant dessus, ça n'affecte pas ton environement.
Par contre, si tu l'appelles depuis une invite, il est recommandé d'initialiser les variables localement, c'est-à-dire commencer le script par un setlocal et terminer par un endlocal.
D'autres couples setlocal/endlocal peuvent être utilisés au long du script si nécessaire de modifier les réglages de l'environement.
Marsh Posté le 19-09-2006 à 19:07:55
Donc setlocal n'est pas néccésaire pour le fonctionnement le la boucle dans mon batch alor ?
Marsh Posté le 19-09-2006 à 20:30:35
Ca dépend de comment est configuré l'environement dans lequel il est lancé.
Bref, faut que tu relises l'aide de la commande setlocal et l'utilité de ses params.
Marsh Posté le 19-09-2006 à 20:55:15
Ben dans tout mes batch je créer des variable style:
Code :
|
Que j'utilise comme suit:
Code :
|
Je n'avais jammais entrer setlocal mais cette forme de variable à toujours fonctionner
Mais dans les boucle For il y a un sytéme d'expension de variable que je n'ai jamais réussi à piger, dans la boucle que tu ma filer tu appele la varible comme ça:
Code :
|
Donc je me demande si le setlocal/endloca sert uniquement dans ce case là ?
Marsh Posté le 19-09-2006 à 20:56:55
Ce que je pige pas c'est si le setlocale est indispensable pour que les variable sous la forme suivante dans les boucle for:
Code :
|
Marsh Posté le 19-09-2006 à 21:52:34
Non, ça ce n'est pas setlocal tout court mais
setlocal ENABLEDELAYEDEXPANSION
c'est pourquoi je t'ai recommandé de relire l'aide de setlocal.
Fais aussi
set /?
où cette option est expliquée et des exemples sont donnés.
Et comme je disais, cette commande est nécessaire ou pas, ça dépend de comment ton invite de commandes est configurée à la base. Si tu veux qu'un script soit portable, il est recommandé de le commencer par définir son environnement d'exécution.
Marsh Posté le 19-09-2006 à 22:00:20
Il y a un truc que je ne comprends pas dans l'aide de setlocal:
Citation : Cela marche, car sur les anciennes versions de CMD.EXE, SETLOCAL NE fixe PAS |
setlocal ENABLEDELAYEDEXPANSION pourait annuler les errorlevel ?
Marsh Posté le 17-09-2006 à 13:24:35
Bonjour, j'ai un script sensé renommer en masse des fichiers:
Mais il ne fonctionne pas, sauriez vous m'aider à aranger ça ?