Question [Résolu] Problème de boucle

Plus d'informations
il y a 7 ans 9 mois #25567 par Corentin
Réponse de Corentin sur le sujet Re:Problème de boucle
réponse du dessus édité ^^

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 9 mois #25568 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:Problème de boucle
Il n'y a pas de souci de dernière ligne avec les fichiers CSV en PowerShell. Le souci doit venir obligatoirement de ton fichier.

Pour moi il n'y a pas lieu d'insérer une ligne vide à la fin de ton fichier CSV.

Que contenait [code:1] $FichierCSV[-1][/code:1] ?

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 9 mois #25569 par Corentin
Réponse de Corentin sur le sujet Re:Problème de boucle
NOM_ECOLE : EE_Louvois
ADDR_FW_LAN : 192.168.10.22
ADDR_POOL_DHCP_LAN : 192.168.31.1-192.168.31.2
ADDR_FW_WAN : 192.168.10.22
ADDR_MASK_WAN : 255.255.255.0
ADDR_GW_WAN : 192.168.10.22
MAC_FW : 00-1C-7F-7E-01-23
PPPOE_USERNAME :
PPPOE_PASSWORD :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 9 mois #25575 par Corentin
Réponse de Corentin sur le sujet Re:Problème de boucle
En fait le programme me génère un fichier pour chaque ligne, même si elles sont vides mais par contre avec une seule ligne vide le programme fonctionne, il faudrait donc modifier la boucle non ? j'ai essayé [code:1]($PPPOE_USERNAME -ne \"\" -and $Ligne -ne \"\"«»)[/code:1]
mais ça ne marche pas non plus :/

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 9 mois #25577 par Philippe
Réponse de Philippe sur le sujet Re:Problème de boucle
salut Arnaud et correntin

carrentin je vais te faire la même remarque de l'autre jour, ton do/until est inutile dans ton script

après tu peut filtrer les lignes vides de plusieurs façons avec un if, un where voir un switch !! B)

je te donne la solution avec le where :

[code:1]$FichierCSV = Import-Csv -Path \"C:\Users\Corentin.FOURRIER\Documents\ecoles1.csv\" -Delimiter \",\"

$compteur = 0

$FichierCSV | where {$_ -ne $null -and $_ -ne \"\" -and $_.NOM_ECOLE -ne \"\"} | foreach {
$ligne = $_
$NOM_ECOLE = $ligne.NOM_ECOLE
$ADDR_FW_LAN = $ligne.ADDR_FW_LAN
$ADDR_POOL_DHCP_LAN = $ligne.ADDR_POOL_DHCP_LAN
$ADDR_FW_WAN = $ligne.ADDR_FW_WAN
$ADDR_MASK_WAN = $ligne.ADDR_MASK_WAN
$ADDR_GW_WAN = $ligne.ADDR_GW_WAN
$MAC_FW = $ligne.MAC_FW
$PPPOE_USERNAME = $ligne.PPPOE_USERNAME
$PPPOE_PASSWORD = $ligne.PPPOE_PASSWORD

if ($PPPOE_USERNAME -ne $null){
$contentPPPOE = Get-Content \"C:\Users\Corentin.FOURRIER\Documents\USB_V2\autoconf.ADDR-MAC-MODELE-PPPOE.clish\" | foreach {
$_ -replace \"<NOM_ECOLE>\",$NOM_ECOLE -replace \"<ADDR_FW_LAN>\", $ADDR_FW_LAN -replace \"<ADDR_POOL_DHCP_LAN>\", $ADDR_POOL_DHCP_LAN -replace \"<ADDR_FW_WAN>\", $ADDR_FW_WAN -replace \"<ADDR_MASK_WAN>\", $ADDR_MASK_WAN -replace \"<ADDR_GW_WAN>\", $ADDR_GW_WAN -replace \"<MAC_FW>\", $MAC_FW -replace \"<PPPOE_USERNAME>\", $PPPOE_USERNAME -replace \"<PPPOE_PASSWORD>\", $PPPOE_PASSWORD }
Set-Content -Path \"C:\Users\Corentin.FOURRIER\Documents\autoconf.MAC.clish\autoconf.$MAC_FW.PPPOE.clish\" -Value $contentPPPOE
} else {
$contentFO = Get-Content \"C:\Users\Corentin.FOURRIER\Documents\USB_V2\autoconf.ADDR-MAC-MODELE-FO.clish\" | foreach {
$_ -replace \"<NOM_ECOLE>\",$NOM_ECOLE -replace \"<ADDR_FW_LAN>\", $ADDR_FW_LAN -replace \"<ADDR_POOL_DHCP_LAN>\", $ADDR_POOL_DHCP_LAN -replace \"<ADDR_FW_WAN>\", $ADDR_FW_WAN -replace \"<ADDR_MASK_WAN>\", $ADDR_MASK_WAN -replace \"<ADDR_GW_WAN>\", $ADDR_GW_WAN -replace \"<MAC_FW>\", $MAC_FW }
Set-Content -Path \"C:\Users\Corentin.FOURRIER\Documents\autoconf.MAC.clish\autoconf.$MAC_FW.FO.clish\" -Value $contentFO
}
$compteur++
}

#echo $contentPPPOE
#echo $contentFO
echo \"Le programme a généré $compteur fichiers avec succés\"
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 ans 9 mois #25579 par Corentin
Réponse de Corentin sur le sujet Re:Problème de boucle
Bonjour 6ratgus,

Merci pour cette solution ça règle une partie de mon problème sans rajouter de ligne c'est parfait !

Le problème est réglé quant au fait que il y a beau avoir 10 lignes vides à la fin, ça ne générera pas de fichiers pour autant, cependant il y a toujours ce problème de dernière ligne, je m'explique,

mon fichier contient 23 lignes,
voici la 23ème ligne en question :
[code:1]EE_Louvois,192.168.10.22,192.168.31.1-192.168.31.2,192.168.10.22,255.255.255.0,192.168.10.22,00-1C-7F-7E-01-23,[/code:1]
comparé à cette ligne :
[code:1]EE_Gen.Carre,192.168.10.21,192.168.30.1-192.168.30.2,192.168.10.21,255.255.255.0,192.168.10.21,00-1C-7F-7E-01-22,ldp/46310,TQVDUI,[/code:1]
Vous voyez bien qu'il n'y a pas de donnée dans PPPOE_Username et pourtant le programme considère que si.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.049 secondes
Propulsé par Kunena