Batch lire dossier partagé

[Résolu/Fermé]
Signaler
Messages postés
408
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
17 décembre 2016
-
Messages postés
134
Date d'inscription
mercredi 8 février 2012
Statut
Membre
Dernière intervention
18 juillet 2013
-
Bonjour,

Nouvelles difficultés pour du batch.
Je dois saisir une adresse IP (OK). Je dois lire un fichier texte contenant des adresses IP sur un fichier partagé sur le réseau. Si l'adresse IP n'est pas dans le fichier texte, on pourra l'utiliser, sinon il y aura un message du type "adresse déjà utilisé". (Et oui, ils ne veulent pas de DHCP :( )
Je pense que je dois le mettre dans un if :

Si %IP% in not (lecture du fichier)
alors (commande pour modifier l'adresse IP, masque, passerelle et DNS
sinon adrese deja utilisée
Fin si

J'ai trouvé sa :
for /F "tokens=1,2* delims=: " %%A in ('find /C "%IP%" "C:\Documents and Settings\Admin\Bureau\AdrIP.txt"') DO (

Cela va chercher dans le fichier texte (en local ici), l'adresse IP saisie plus haut, mais après je ne sais pas comment faire.

L'algo n'est pas top top, mais c'est l'idée. Par contre en batch je suis perdu.

Ensuite, si l'adresse IP est disponible, il faut l'ajouter dans le fichier texte :
echo %IP%> 192.168.0.17/fichier_de_sortie.txt
Voila ce que j'ai. Je me demande si la syntaxe est la bonne, avec l'adresse IP mise comme cela.

Merci de m'aider.

1 réponse

Messages postés
134
Date d'inscription
mercredi 8 février 2012
Statut
Membre
Dernière intervention
18 juillet 2013
117
Bonsoir,

Désolé du retard pour la prise en charge de ta question ^^ Il faut croire que bien trop peu de personnes s'intéressent au Batch.

Si j'ai compris, tu dois :
- Demander une IP locale à l'usager
- Vérifier la présence de l'IP dans un fichier d'adresses IP
- Si l'IP entrée n'est pas dans le fichier, alors tu changes tes propriétés d'IP locale pour prendre cette IP choisie, puis l'IP est entrée dans le fichier (et par conséquent l'ancienne doit être enlevée)
- Si l'IP est dans le fichier, alors le script ne fait rien : l'IP locale correspondante est déjà utilisée.

Pour ce qui est de vérifier dans la liste, il faudrait que la syntaxe du fichier soit connue.
En l'occurrence, je crois qu'il y a une adresse IP par ligne, ce qui fait que ton code peut être :

@echo off 

set /p IP=Choisissez une adresse IP locale :  
for /f %%a in (fichier.txt) do if %IP%==%%a goto :error 
echo Application des changements... 

REM Commandes d'IP 

echo Les changements ont bien ete appliques. 

REM Remplacement de l'IP dans fichier.txt 

pause 
exit 

:error 
echo L'adresse choisie est deja utilisee. 
pause 
exit

Ainsi donc ne reste que les commandes relatives au changement d'IP locale en Batch, et je ne suis pas sûr que ce soit possible, peut-être avec netsh ou avec des commandes externes, je vais me renseigner.

Ah, pour information, n'oublies jamais que Windows utilise des backslashs et non pas des slashs pour ses adresses dans le disque.