remplacement de caractere dans plusieurs fichiers

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
fafardel
Batcheur occasionnel
Messages : 3
Enregistré le : 14 déc. 2011 19:15

remplacement de caractere dans plusieurs fichiers

Message 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
Romanium
King Of Batch
Messages : 36
Enregistré le : 09 nov. 2011 03:57
Localisation : Québec, Canada

Re: remplacement de caractere dans plusieurs fichiers

Message 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...

___________
Romanium
fafardel
Batcheur occasionnel
Messages : 3
Enregistré le : 14 déc. 2011 19:15

Re: remplacement de caractere dans plusieurs fichiers

Message 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
Romanium
King Of Batch
Messages : 36
Enregistré le : 09 nov. 2011 03:57
Localisation : Québec, Canada

Re: remplacement de caractere dans plusieurs fichiers

Message 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
 

___________
Romanium
fafardel
Batcheur occasionnel
Messages : 3
Enregistré le : 14 déc. 2011 19:15

Re: remplacement de caractere dans plusieurs fichiers

Message 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
Laddy
SuperBatcher
Messages : 190
Enregistré le : 04 juil. 2008 13:40

Re: remplacement de caractere dans plusieurs fichiers

Message 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
Envie de partager vos programmes :
Poster vos codes sur BatchClipboad.info
Répondre