Page 1 sur 1

remplacement de caractere dans plusieurs fichiers

Posté : 14 déc. 2011 19:26
par fafardel
Bonjour
Voilà je dois changer le nom d'un serveur dans un fichier, j'ai plus d'une centaine de postes à faire....
Donc, je voudrais tester l'existence de ce fichier et si il existe remplacer le nom ou l'adresse ip par son nouveau nom

J'ai trouvé le "programme" switch pour remplacer le nom
J'ai listé l'emplacement possible de tous les fichiers dans un fichier txt

Maintenant je cherche à récupérer l'emplacement du fichier en tant que variavble et l'insérer dans ma commande avec le programme SWITCH

Pourriez - vous m'aider ?
Mon code actuel est :

Code : Tout sélectionner

REM @echo off
 
 for /f %%a in (fichier.txt) do call :commande
 :Commande
switch %%a CODAV10 codbddprd

pause
je récupére bien l'emplacement du fichier dand fichier.txt mais dans ma ligne de commande switch je ne récupére rien.

Ou me suis - je trompé ?

Merci de votre aide
Fabien

Re: remplacement de caractere dans plusieurs fichiers

Posté : 15 déc. 2011 02:58
par Romanium
Je ne connais aucunement le programme switch, mais je te propose de modifier un peu tes commandes comme tel:

Code : Tout sélectionner

for /f %%a in (fichier.txt) do (
     set string=%%a
     call :commande
)
 :Commande
switch "%string%" CODAV10 codbddprd

 
Explication: Je ne pense pas que tu puisse utiliser %%a à l'extérieur de la commande for, alors avant de caller la Commande, tu recopie %%a dans une vraie variable. Les guillemets après la commande switch sont simplement une sécurité au cas où le contenu de string contiendrait des charactère spéciaux...

Re: remplacement de caractere dans plusieurs fichiers

Posté : 15 déc. 2011 13:52
par fafardel
Merci à toi ça fonctionne super

Pourrais-tu me dire comment je peux faire pour exécuter la commande uniquement si le fichier existe sur l'ordinateur ?

Merci d'avcance
Fabien

Re: remplacement de caractere dans plusieurs fichiers

Posté : 15 déc. 2011 14:53
par Romanium
Il suffit d'ajouter une condition ainsi qu'une alternative au script si jamais le fichier est introuvable (dans ce cas ci, le script affiche un message d'erreur et se termine):

Code : Tout sélectionner

if not exist "fichier.txt" goto end
for /f %%a in (fichier.txt) do (
     set string=%%a
     call :commande
)
 :Commande
switch "%string%" CODAV10 codbddprd
:end
echo Unable to read source file. Script interrupted.
pause
 

Re: remplacement de caractere dans plusieurs fichiers

Posté : 15 déc. 2011 14:58
par fafardel
Merci mais en fait je me suis mal expliqué

C'est pas si le fichier txt existe mais si le fichier qui est dans fichier.txt n'existe pas sur l'ordi

Exemple : Dans le fichier.txt, j'ai l'emplacement de deux fichiers
1.txt ==> ce fichier existe sur l'ordi on exécute la commande
2.txt ==> Ce fichier n'existe pas on n'exécute pas le script

Voilà quand je m'explique bien on comprends mieux ......

Merci à toi
Fabien

Re: remplacement de caractere dans plusieurs fichiers

Posté : 18 déc. 2011 15:54
par Laddy

Code : Tout sélectionner

for /f %%a in (fichier.txt) do if exist %%a (
     set string=%%a
     call :commande
)
 :Commande
switch "%string%" CODAV10 codbddprd