Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
806 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] renomer des fichiers dans tout le lecteur.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] renomer des fichiers dans tout le lecteur.

n°1287699
cricri-200​0
Posté le 19-01-2006 à 17:02:03  profilanswer
 

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
mood
Publicité
Posté le 19-01-2006 à 17:02:03  profilanswer
 

n°1287739
cricri-200​0
Posté le 19-01-2006 à 17:27:36  profilanswer
 

Personne n'a jamais fait ce genre de script?

n°1287740
wackevat
Posté le 19-01-2006 à 17:27:55  profilanswer
 

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  :sarcastic:

n°1287760
cricri-200​0
Posté le 19-01-2006 à 17:45:38  profilanswer
 

Mon script actuel n'est pas focntionnel justement.
Je ne sais pas faire de recursivité dans les rep/ss rep

Code :
  1. rename  *_exe.vir *.exe


 
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

n°1287802
cricri-200​0
Posté le 19-01-2006 à 18:36:18  profilanswer
 

Code :
  1. for /R %%x in (*_exe.vir) do rename %%x.exe


J'ai trouvé ça sinon... mais ça ne marche pas

n°1287823
wackevat
Posté le 19-01-2006 à 18:53:39  profilanswer
 

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 ;)

n°1287825
cricri-200​0
Posté le 19-01-2006 à 18:54:06  profilanswer
 

oui merci, je suis en train d'essayer
 
par contre pour set, ça ne m'avance pas trop

Code :
  1. >SET /?
  2. Affiche, fixe, ou supprime des variables d'environnement de MS-DOS.
  3. SET [variable=[chaîne]]
  4.   variable  nom de la variable d'environnement.
  5.   chaîne    chaîne de caractères à affecter à la variable.
  6. SET sans paramètres affiche les variables d'environnement définies.


Message édité par cricri-2000 le 19-01-2006 à 18:57:03
n°1287840
wackevat
Posté le 19-01-2006 à 19:04:35  profilanswer
 

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.

n°1288261
cricri-200​0
Posté le 20-01-2006 à 12:53:12  profilanswer
 

Toto.bat

Code :
  1. for /R %%x in (*_exe.vir) do titi.bat %%~nx


 
Titi.bat

Code :
  1. set /a "<<" a= "%1" "4"
  2. echo %a%


 
J'ai des soucie avec la syntaxe de la commande SET :-(
y a rien dans l'aide windows


Message édité par cricri-2000 le 20-01-2006 à 12:53:42
n°1288315
wackevat
Posté le 20-01-2006 à 14:25:56  profilanswer
 

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.

mood
Publicité
Posté le 20-01-2006 à 14:25:56  profilanswer
 

n°1288423
cricri-200​0
Posté le 20-01-2006 à 16:30:22  profilanswer
 

Je confirme, je suis sous XP pro , et j'ai essayer aussi sur W2000.. ça sort la meme chose chez moi a savoir :

Code :
  1. Affiche, fixe, ou supprime des variables d'environnement de MS-DOS.
  2. SET [variable=[chaîne]]
  3.   variable  nom de la variable d'environnement.
  4.   chaîne    chaîne de caractères à affecter à la variable.
  5. SET sans paramètres affiche les variables d'environnement définies.


Message édité par cricri-2000 le 20-01-2006 à 16:31:14
n°1288427
cricri-200​0
Posté le 20-01-2006 à 16:41:51  profilanswer
 

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 :
  1. for /R . %%x in (*_exe.vir) do titi.bat %%~nx


 
titi.bat

Code :
  1. set a= %1
  2. set x= %a:~0,-4%
  3. rename %a%.vir %x%.exe


 
ça fonctionne pour le repertoire courant....
Il me reste plus qu'a lui faire parcourire toute l'arbo de mon DD ;-)


Message édité par cricri-2000 le 20-01-2006 à 16:53:48
n°1288435
wackevat
Posté le 20-01-2006 à 16:48:15  profilanswer
 

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 :
  1. for /r "dossier_racine" %%x in (*_exe.vir) do (
  2.   call :renommer "%%~fx" "%%~nx"
  3. )
  4. goto fin
  5. :renommer
  6. set a=%~2
  7. set a=%a:~0,-4%
  8. ren "%~1" "%a%.exe"
  9. :fin


 
Peux pas tester tout de suite, mais ça ne doit pas être loin du code final.

n°1288446
cricri-200​0
Posté le 20-01-2006 à 16:55:09  profilanswer
 

J'ai encore un petit soucie... mon script marche sauf :
 

  • mon rename, une fois qu'il passe a un sous dossier, forcement, il me fait  rename X => x.exe


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

n°1288447
wackevat
Posté le 20-01-2006 à 16:58:58  profilanswer
 

Oui, c'est pourquoi j'ai précisé le dossier racine et passe deux params au lieu d'un seul.

n°1288629
wackevat
Posté le 20-01-2006 à 21:00:07  profilanswer
 

Comme promis, voici ce que ça donne quand je fais :  
set /?  
 
http://rapidshare.de/files/11445819/set.txt.html

n°1288799
Sve@r
Posté le 21-01-2006 à 10:23:38  profilanswer
 

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


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1289791
cricri-200​0
Posté le 22-01-2006 à 23:45:28  profilanswer
 

hop, j'ai reussis et ça marche ;-)
 
toto.bat

Code :
  1. for /R . %%x in (*_exe.vir) do titi.bat "%%~fx" "%%~nx"


 
Titi.bat

Code :
  1. set a=%~2
  2. set a=%a:~0,-4%
  3. rename "%~1" "%a%.exe"


Message édité par cricri-2000 le 23-01-2006 à 00:10:35
n°1289798
wackevat
Posté le 23-01-2006 à 00:05:11  profilanswer
 

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

n°1289802
cricri-200​0
Posté le 23-01-2006 à 00:11:16  profilanswer
 

exact pour les 2 ligne.. pour le fichier en trop, ça marche aussi bien ;-)
 
Merci Nglechau ;-)

n°1289803
wackevat
Posté le 23-01-2006 à 00:14:28  profilanswer
 

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.
 
@+

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] renomer des fichiers dans tout le lecteur.

 

Sujets relatifs
Informations de fichiers binaires (MP3)Comment voir les fichiers contenu sur un site ?
[Batch]Test repertoire videproblème accents résultat batch
.bat qui recherce des fichiers et les supprimesexemple de commande for en dos/batch
Re comment creeer un cd lisible sur pc/ chaine hifi/ lecteur dvdcomment creeer un cd lisible sur pc/ chaine hifi/ lecteur dvd
modifier le registre windows en batch ( debutant )Upload de gros fichiers
Plus de sujets relatifs à : [BATCH] renomer des fichiers dans tout le lecteur.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR