Batch lire dossier partagé
Résolu
karkol
Messages postés
408
Date d'inscription
Statut
Membre
Dernière intervention
-
Quester4 Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
Quester4 Messages postés 136 Date d'inscription Statut Membre Dernière intervention -
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.
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.
A voir également:
- Batch lire dossier partagé
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Partage de photos - Guide
- Lire epub - Guide
- Dossier appdata - Guide
- Lire fichier bin - Guide
1 réponse
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 :
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.
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.