renomer des fichiers dans tout le lecteur. [BATCH] - Shell/Batch - Programmation
Marsh Posté le 19-01-2006 à 17:27:55
Ben il y a plein d'exemples similaires sur ce forum. Soit tu fais une recherche, soit tu postes ton script actuel pour qu'on corrige. Et sois patient au lieu de upper après un quart d'heure. C'est un forum d'entraide à la programmation ici et non pas un fournisseur de script tout fait, encore moins une hotline
Marsh Posté le 19-01-2006 à 17:45:38
Mon script actuel n'est pas focntionnel justement.
Je ne sais pas faire de recursivité dans les rep/ss rep
Code :
|
Pour la recherche, Rien ici ne correspond vraiment a ce que je recherche.
Mais comme je me trompe surement, peut tu me donner le lien ou ce script a déja été donné.
Merci
Marsh Posté le 19-01-2006 à 18:36:18
Code :
|
J'ai trouvé ça sinon... mais ça ne marche pas
Marsh Posté le 19-01-2006 à 18:53:39
Tu y es presque
Dans l'aide de la commande
for
tu as
%%~nx
pour le nom du fichier (sans extension).
Ensuite, si tu regardes dans l'aide de la commande
set
tu verras comment extraire une partie d'une chaîne de caractères (x caractères au début, ou toute la chaîne sauf x derniers, etc.)
Puisque, là, nous avons besoin de récupérer les noms de fichier sans les 4 derniers caractères.
Sinon, il faut revoir la syntaxe de la commande
rename
Celle que tu utilises là n'est pas la bonne.
Voilà. Et dis-nous si ça t'aide à avancer
Marsh Posté le 19-01-2006 à 18:54:06
oui merci, je suis en train d'essayer
par contre pour set, ça ne m'avance pas trop
Code :
|
Marsh Posté le 19-01-2006 à 19:04:35
Euh c'est tout ?
Je suis sous Linux là donc ne peux pas vérifier. Mais de mémoire ça fait beaucoup plus long que ça, avec plein d'exemples.
Regarde dans l'aide de Windows.
Marsh Posté le 20-01-2006 à 12:53:12
Toto.bat
Code :
|
Titi.bat
Code :
|
J'ai des soucie avec la syntaxe de la commande SET :-(
y a rien dans l'aide windows
Marsh Posté le 20-01-2006 à 14:25:56
C'est vrai
Tu n'as pas compris comment ça fonctionne
J'ai vérifié hier soir : quand j'ai fait :
set /?
ça m'imprime deux pages d'aide. Comment ça se fait que chez toi c'était si court ?
Je te posterai ces deux pages ce soir, mais en anglais par contre.
Marsh Posté le 20-01-2006 à 16:30:22
Je confirme, je suis sous XP pro , et j'ai essayer aussi sur W2000.. ça sort la meme chose chez moi a savoir :
Code :
|
Marsh Posté le 20-01-2006 à 16:41:51
J'ai trouver un semblant de Doc pour SET sur le net....
J'ai refait mon code et j'ai sorti ça...
Toto.bat
Code :
|
titi.bat
Code :
|
ça fonctionne pour le repertoire courant....
Il me reste plus qu'a lui faire parcourire toute l'arbo de mon DD ;-)
Marsh Posté le 20-01-2006 à 16:48:15
OKi. De toute façon, je te poste l'aide ce soir, ça peut servir on ne sait jamais.
Sinon, tes scripts sont bons cette fois-ci On peut les combiner en un en appelant une procédure :
Code :
|
Peux pas tester tout de suite, mais ça ne doit pas être loin du code final.
Marsh Posté le 20-01-2006 à 16:55:09
J'ai encore un petit soucie... mon script marche sauf :
il faut absolument que je lui mette l'arborescence devant le nom des fichiers, sinon, il ne le trouve pas... vu qu'il cherche a la racine
Marsh Posté le 20-01-2006 à 16:58:58
Oui, c'est pourquoi j'ai précisé le dossier racine et passe deux params au lieu d'un seul.
Marsh Posté le 20-01-2006 à 21:00:07
Comme promis, voici ce que ça donne quand je fais :
set /?
http://rapidshare.de/files/11445819/set.txt.html
Marsh Posté le 21-01-2006 à 10:23:38
Moi je connais pas le batch donc je passe par excel
1) je fais un listing "dir >fic.txt"
2) j'importe "fic.txt dans excel
3) avec les formules de traitement de chaines excel, je crée une seconde colonne contenant "rename nom_depart nom_arrive"
4) j'exporte cette colonne dans un fichier texte que j'exécute comme un batch
Marsh Posté le 22-01-2006 à 23:45:28
hop, j'ai reussis et ça marche ;-)
toto.bat
Code :
|
Titi.bat
Code :
|
Marsh Posté le 23-01-2006 à 00:05:11
C'est ce que j'avais mis plus haut, mais là tu as un fichier de trop et deux lignes de trop
set a=0
set x=0
Marsh Posté le 23-01-2006 à 00:11:16
exact pour les 2 ligne.. pour le fichier en trop, ça marche aussi bien ;-)
Merci Nglechau ;-)
Marsh Posté le 23-01-2006 à 00:14:28
Tout à fait. C'est aussi une approche d'utiliser plusieurs batch qui s'appellent Il faut juste ne pas oublier d'adapter le format et le nombre d'arguments de l'un quand ils sont modifiés dans l'autre.
@+
Marsh Posté le 19-01-2006 à 17:02:03
Bonjour,
Suite a un scan antivirus en ligne, PANDA ma trouver un virus sur une grande quantité de fichier .exe partout dans mes lecteurs.
Ne pouvant pas nettoyer les fichiers .exe, PANDA à eu la tres bonne idée de me les renomer en _exe.vir.
JE cherche a faire un script BATCH qui balayerai mon lecteur g: et J: et qui me renomerai TOUT les fichier en *_exe.vir => *.exe .
Merci d'avance.
Christophe
Message édité par cricri-2000 le 19-01-2006 à 17:13:11