Question
[RESOLU] Formatage IP 3chiffres
- Alexandre ALEYA
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 14 ans 11 mois #9389
par Alexandre ALEYA
[RESOLU] Formatage IP 3chiffres a été créé par Alexandre ALEYA
Bonjour
,
J'utilise un logiciel dans lequel je peux importer une liste de PC avec son @IP.
Pour ce logiciel, le fichier doit être du type :
DT080009A1,172.023.052.123
DT080030A1,172.023.052.064
DT080054A1,172.016.005.011
DT080101A1,172.023.052.091
càd toujours 3 chiffres.
Je dispose de la liste des PC et j'utilise un script Powershell qui trouve l'@IP à partir du nom.
Le script me retourne :
DT080009A1,172.23.52.123
DT080030A1,172.23.52.64
DT080054A1,172.16.5.11
DT080101A1,172.23.52.91
càd 3,2 ou 1 chiffres.
La piste que je suis :
[code:1]
[string]::Format(\"{0: D3}\",24)
[/code:1]
et qui me retourne bien 024. Mais comment faire pour formater 172.24.3, par exemple?
Quelqu'un saurait il comment faire pour que le formatage se fasse dans le script ?
Merci d'avance,
Alex<br><br>Message édité par: axaly, à: 15/04/11 11:52
J'utilise un logiciel dans lequel je peux importer une liste de PC avec son @IP.
Pour ce logiciel, le fichier doit être du type :
DT080009A1,172.023.052.123
DT080030A1,172.023.052.064
DT080054A1,172.016.005.011
DT080101A1,172.023.052.091
càd toujours 3 chiffres.
Je dispose de la liste des PC et j'utilise un script Powershell qui trouve l'@IP à partir du nom.
Le script me retourne :
DT080009A1,172.23.52.123
DT080030A1,172.23.52.64
DT080054A1,172.16.5.11
DT080101A1,172.23.52.91
càd 3,2 ou 1 chiffres.
La piste que je suis :
[code:1]
[string]::Format(\"{0: D3}\",24)
[/code:1]
et qui me retourne bien 024. Mais comment faire pour formater 172.24.3, par exemple?
Quelqu'un saurait il comment faire pour que le formatage se fasse dans le script ?
Merci d'avance,
Alex<br><br>Message édité par: axaly, à: 15/04/11 11:52
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 11 mois #9399
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Formatage IP 3chiffres
Une solution :
[code:1]
\"DT080009A1,172.23.52.123\",
\"DT080030A1,172.23.52.64\",
\"DT080054A1,172.16.5.11\",
\"DT080101A1,172.23.52.91\",
\"DT080101A1,1.23.152.91\",
\"DT080101A1,10.230.2.191\",
\"DT080101A1,100.230.200.191\"|
%{
$A=$_
$B= $A -split ','
[int[]] $t=($B[1] -split \"\.\"«»)
$C=\"$($B[0]),$(\"{0:«»D3}.{1:«»D3}.{2:«»D3}.{3:«»D3}\" -F $t[0],$t[1],$t[2],$t[3])\"
Write-host (\"-\" * 80)
$A
$C
}
[/code:1]
Peut être améliorée
[code:1]
\"DT080009A1,172.23.52.123\",
\"DT080030A1,172.23.52.64\",
\"DT080054A1,172.16.5.11\",
\"DT080101A1,172.23.52.91\",
\"DT080101A1,1.23.152.91\",
\"DT080101A1,10.230.2.191\",
\"DT080101A1,100.230.200.191\"|
%{
$A=$_
$B= $A -split ','
[int[]] $t=($B[1] -split \"\.\"«»)
$C=\"$($B[0]),$(\"{0:«»D3}.{1:«»D3}.{2:«»D3}.{3:«»D3}\" -F $t[0],$t[1],$t[2],$t[3])\"
Write-host (\"-\" * 80)
$A
$C
}
[/code:1]
Peut être améliorée
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Alexandre ALEYA
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 0
il y a 14 ans 11 mois #9404
par Alexandre ALEYA
Réponse de Alexandre ALEYA sur le sujet [RESOLU] Formatage IP 3chiffres
Merci !
J'ai essayé et c'est bon !
Pour ma compréhension: vous splittez la chaîne en fonction de la position du point et ensuite vous formatez cette nouvelle chaîne suivant les recommandations.
Bon week end
<br><br>Message édité par: axaly, à: 15/04/11 11:52
J'ai essayé et c'est bon !
Pour ma compréhension: vous splittez la chaîne en fonction de la position du point et ensuite vous formatez cette nouvelle chaîne suivant les recommandations.
Bon week end
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 11 mois #9420
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[RESOLU] Formatage IP 3chiffres
axaly écrit:

Une amélioration sur le 'casting' :
[code:1]
$a=\"DT080101A1,172.23.52.91\"
$B= $A -split ','
$T=$B[1] -split \"\.\"|% {[Object][int]$_}
$C=\"$($B[0]),$(\"{0:«»D3}.{1:«»D3}.{2:«»D3}.{3:«»D3}\" -F $T)\"
Write-host (\"-\" * 80)
$A
$C
[/code:1]
A ce jour, je n'ai pas trouvé comment caster simplement un tableau d'entier en un tableau d'objet ( cf. \"boxing dotnet\").
Si qq un à une solution je suis à l'écoute
Une autre approche moins \"triviale\":
[code:1]
$delegateLeading= [System.Text.RegularExpressions.MatchEvaluator] {
\"{0:«»D3}\" -F ([int]$args[0].ToString())
}
#from stackoverflow.com/questions/2659058/usin...o-add-leading-zeroes
$re = [regex] '(?:^|(?<=[^0-9]))([0-9]{1,3})(?=$|[^0-9])'
\"10.230.2.19\" |
ForEach-object { $re.Replace($_, $delegateLeading) }
[/code:1]
Mais je n'ai pas fait de test de performances
Merci, à toi aussiBon week end
Une amélioration sur le 'casting' :
[code:1]
$a=\"DT080101A1,172.23.52.91\"
$B= $A -split ','
$T=$B[1] -split \"\.\"|% {[Object][int]$_}
$C=\"$($B[0]),$(\"{0:«»D3}.{1:«»D3}.{2:«»D3}.{3:«»D3}\" -F $T)\"
Write-host (\"-\" * 80)
$A
$C
[/code:1]
A ce jour, je n'ai pas trouvé comment caster simplement un tableau d'entier en un tableau d'objet ( cf. \"boxing dotnet\").
Si qq un à une solution je suis à l'écoute
Une autre approche moins \"triviale\":
[code:1]
$delegateLeading= [System.Text.RegularExpressions.MatchEvaluator] {
\"{0:«»D3}\" -F ([int]$args[0].ToString())
}
#from stackoverflow.com/questions/2659058/usin...o-add-leading-zeroes
$re = [regex] '(?:^|(?<=[^0-9]))([0-9]{1,3})(?=$|[^0-9])'
\"10.230.2.19\" |
ForEach-object { $re.Replace($_, $delegateLeading) }
[/code:1]
Mais je n'ai pas fait de test de performances
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- jojo
-
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 14 ans 11 mois #9422
par jojo
Réponse de jojo sur le sujet Re:[RESOLU] Formatage IP 3chiffres
bonjour,
une solution de plus:
[code:1]\"DT080009A1,172.23.52.123\",
\"DT080030A1,172.23.52.64\",
\"DT080054A1,172.16.5.11\",
\"DT080101A1,172.23.52.91\",
\"DT080101A1,1.23.152.91\",
\"DT080101A1,10.230.2.191\",
\"DT080101A1,100.230.200.191\"|
%{
$a,$b,$c,$d,$e=$_.Split(\",.\"«»)
$b=([string](1000+$b)).substring(1)
$c=([string](1000+$c)).substring(1)
$d=([string](1000+$d)).substring(1)
$e=([string](1000+$e)).substring(1)
\"{0},{1}.{2}.{3}.{4}\" -f $a,$b,$c,$d,$e
}
[/code:1]
une solution de plus:
[code:1]\"DT080009A1,172.23.52.123\",
\"DT080030A1,172.23.52.64\",
\"DT080054A1,172.16.5.11\",
\"DT080101A1,172.23.52.91\",
\"DT080101A1,1.23.152.91\",
\"DT080101A1,10.230.2.191\",
\"DT080101A1,100.230.200.191\"|
%{
$a,$b,$c,$d,$e=$_.Split(\",.\"«»)
$b=([string](1000+$b)).substring(1)
$c=([string](1000+$c)).substring(1)
$d=([string](1000+$d)).substring(1)
$e=([string](1000+$e)).substring(1)
\"{0},{1}.{2}.{3}.{4}\" -f $a,$b,$c,$d,$e
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.042 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [RESOLU] Formatage IP 3chiffres