[Batch]Operation sur adresse IP
Résolu
juroks
Messages postés
197
Date d'inscription
Statut
Membre
Dernière intervention
-
manelsousse Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
manelsousse Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais manipuler une adresse IP
par exemple :
@echo off
cls
echo Saissir l'adresse IP
set /p IP=
et je voudrais faire en sorte que les quatres octets soient séparés
Exemple Si IP= 192.168.0.11
je voudrais obtenir
IP1 = 192
IP2= 168
IP3 =0
IP4= 11
je sais qui faut utiliser une boucle for mais je ne sais pas comment l'utiliser.
Voila Merci pour vos réponses !
Je souhaiterais manipuler une adresse IP
par exemple :
@echo off
cls
echo Saissir l'adresse IP
set /p IP=
et je voudrais faire en sorte que les quatres octets soient séparés
Exemple Si IP= 192.168.0.11
je voudrais obtenir
IP1 = 192
IP2= 168
IP3 =0
IP4= 11
je sais qui faut utiliser une boucle for mais je ne sais pas comment l'utiliser.
Voila Merci pour vos réponses !
A voir également:
- [Batch]Operation sur adresse IP
- Ethernet n'a pas de configuration ip valide - Guide
- Comment connaître son adresse ip - Guide
- Darkino nouvelle adresse - Guide
- Adresse mac - Guide
- Comment savoir si quelqu'un utilise mon adresse ip - Guide
9 réponses
ok, je sais pas si il y a moyen de faire plus propre mais je passe par un fichier temporaire (qui est supprimé après.
@echo off
cls
echo Saissir l'adresse IP
set /p IP=
echo %IP% >c:\temp.txt
for /f "tokens=1,2,3,4 delims=." %%i in (c:\temp.txt) do set IP1=%%i& set IP2=%%j& set IP3=%%k& set IP4=%%l
echo IP1=%IP1%
echo IP2=%IP2%
echo IP3=%IP3%
echo IP4=%IP4%
del c:\temp.txt
pause
@echo off
cls
echo Saissir l'adresse IP
set /p IP=
echo %IP% >c:\temp.txt
for /f "tokens=1,2,3,4 delims=." %%i in (c:\temp.txt) do set IP1=%%i& set IP2=%%j& set IP3=%%k& set IP4=%%l
echo IP1=%IP1%
echo IP2=%IP2%
echo IP3=%IP3%
echo IP4=%IP4%
del c:\temp.txt
pause
HostOfSeraphim
Messages postés
6750
Date d'inscription
Statut
Contributeur
Dernière intervention
1 608
Pour faire un chouilla plus propre, tu peux utiliser la variable d'environnement %TEMP% pour créer le fichier temporaire dans un répertoire qui existe à coup sûr (tout le monde n'a pas son système sur C).
Xavstarblues
Messages postés
10019
Date d'inscription
Statut
Contributeur
Dernière intervention
1 856
>
HostOfSeraphim
Messages postés
6750
Date d'inscription
Statut
Contributeur
Dernière intervention
vi aussi, voir aussi possible avec %CD% si c'est a exécuter depuis une clé pour conserver le fichier après.
bonjour
insere ca (apres set /p IP=)
for /f "tokens=1,2,3,4 delims=." %%i in %IP% do set IP1=%%i& set IP2=%%j& set IP3=%%k& set IP4=%%l
(pour etre sur que ca marche tu peux ajouter ca)
echo %IP1
echo %IP2
echo %IP3
echo %IP4
pause
EDIT; je viens de tester, il plante... je regarde ca
insere ca (apres set /p IP=)
for /f "tokens=1,2,3,4 delims=." %%i in %IP% do set IP1=%%i& set IP2=%%j& set IP3=%%k& set IP4=%%l
(pour etre sur que ca marche tu peux ajouter ca)
echo %IP1
echo %IP2
echo %IP3
echo %IP4
pause
EDIT; je viens de tester, il plante... je regarde ca
on peut faire comme ça avec une variable:
for /f "usebackq delims=. tokens=1,2,3,4" %%i in (`echo %IP%`) do ( set IP1=....
for /f "usebackq delims=. tokens=1,2,3,4" %%i in (`echo %IP%`) do ( set IP1=....
Merci merci
j'ai repris ton code Xavstarblues et juste au lieu de faire c:\temp.txt je fais temp.txt ce qui me permet le mettre dans le dossier ou se trouve mon script.
donc beau boulot sa m'aide vraiment pour la suite !
je fais mon script de collecte SNMP et je suis en phase optimisation !
merci encore !
j'ai repris ton code Xavstarblues et juste au lieu de faire c:\temp.txt je fais temp.txt ce qui me permet le mettre dans le dossier ou se trouve mon script.
donc beau boulot sa m'aide vraiment pour la suite !
je fais mon script de collecte SNMP et je suis en phase optimisation !
merci encore !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Le premier script comporte 2 erreurs
1/ Il ne faut pas utiliser IP comme variable car c'est une commande !
2/ Il faut mettre la variable entre guillemets et parenthèses
Donc l'utilisation d'un fichier temp.txt comme dans le second sript est inutile.
Voici le script corrigé qui fonctionne :
Le premier script comporte 2 erreurs
1/ Il ne faut pas utiliser IP comme variable car c'est une commande !
2/ Il faut mettre la variable entre guillemets et parenthèses
Donc l'utilisation d'un fichier temp.txt comme dans le second sript est inutile.
Voici le script corrigé qui fonctionne :
@echo off cls setlocal EnableDelayedExpansion :: Exemple Si IP= 192.168.0.11 :: Il ne faut pas utiliser IP comme variable :: c'est une commande ! echo Saisir l'adresse IP set /p var= FOR /f "tokens=1,2,3,4 delims=." %%a in ("%var%") DO SET IP1=%%a&SET IP2=%%b&SET IP3=%%c&SET IP4=%%d :: Si la variable est definie l'afficher à l'écran If defined IP1 (echo L'IP 1 est : %IP1%) If defined IP2 (echo L'IP 2 est : %IP2%) If defined IP3 (echo L'IP 3 est : %IP3%) If defined IP4 (echo L'IP 4 est : %IP4%) pause endlocal
pour extraire les quatre IP appel la fonction explode comme ci
$variable=explode(".",$adresseip)
le point c'est le seperateur et $adresseip est votre adresse 125.92.92.11 ensuite pour l'affichage ecrivez :
echo $variable[0];
echo $variable[1];
echo $variable[2];
echo $variable[3];
$variable=explode(".",$adresseip)
le point c'est le seperateur et $adresseip est votre adresse 125.92.92.11 ensuite pour l'affichage ecrivez :
echo $variable[0];
echo $variable[1];
echo $variable[2];
echo $variable[3];
Bonjour Mr manelsousse
Expode qui vient du PHP ne fonctionne en fichier batch .
Je rectifie mon premier message qui à une erreur de tabulation dans la commande for:
Expode qui vient du PHP ne fonctionne en fichier batch .
Je rectifie mon premier message qui à une erreur de tabulation dans la commande for:
@echo off cls setlocal EnableDelayedExpansion :: Exemple Si IP= 192.168.0.11 :: Il ne faut pas utiliser IP comme variable :: c'est une commande ! echo Saisir l'adresse IP set /p var= FOR /f "tokens=1,2,3,4 delims=." %%a in ("%var%") DO SET IP1=%%a&SET IP2=%%b&SETIP3=%%c&SET IP4=%%d If defined IP1 (echo L'IP 1 est : %IP1%) If defined IP2 (echo L'IP 2 est : %IP2%) If defined IP3 (echo L'IP 3 est : %IP3%) If defined IP4 (echo L'IP 4 est : %IP4%) pause endlocal