Question Export csv ; Point virgules pour case vide

Plus d'informations
il y a 7 ans 8 mois #25675 par Corentin
Bonjour à tous,

Après un export en csv, il y a des points virgules pour les cases vides et cela pose problème pour mon programme
[code:1]$FichierCSV = Import-Csv -Path \"C:\Users\Corentin.FOURRIER\Desktop\test2\ecoles2.csv\" -Delimiter \";\"

$CompteurFichierPPPOE=0
$CompteurFichierFO=0
$compteur=0

$FichierCSV | ForEach {$_.MAC_FW = $_.MAC_FW.replace(\":\",\"-\"«»)}
$FichierCSV | where {$_.NOM_ECOLE -ne \"\"} | Foreach {

if ($_.PPPOE_USERNAME -ne $null){
$Modele = Get-Content \"C:\Users\Corentin.FOURRIER\Desktop\test2\autoconf.ADDR-MAC-MODELE-PPPOE.clish\"
$CompteurFichierPPPOE++
}
else {
$Modele = Get-Content \"C:\Users\Corentin.FOURRIER\Desktop\test2\autoconf.ADDR-MAC-MODELE-FO.clish\"
$CompteurFichierFO++
}

ForEach-Object {

$FichierModifié = $Modele -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 \"C:\Users\Corentin.FOURRIER\Desktop\test2\autoconf.$($_.MAC_FW).clish\" -Value $FichierModifié
$compteur++
}

echo \"Le programme a généré $compteur fichiers avec succés\"
echo \"$CompteurFichierPPPOE fichiers PPPOE et $CompteurFichierFO fichiers FO.\"[/code:1]

Le code fonctionne pour les lignes sans cases vides, mais pas pour les lignes ou il y a des points virgules en trop

Avez vous des solutions qui n'inclurait pas ajouter du code, par exemple faire quelque chose avec mon fichier excel, ou sinon une petite modif du code...

Corentin<br><br>Message édité par: Corentin, à: 26/06/18 13:28

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

Plus d'informations
il y a 7 ans 8 mois #25676 par Corentin
Bon je suis débile j'ai résolu le problème une minute après avoir fais ce post..
J'ai modifié cette ligne :
[code:1]if ($_.PPPOE_USERNAME -ne \&quot;\&quot;){[/code:1]

ça ne fonctionnait pas à cause de $null à la place de \&quot;\&quot;

Par contre j'ai un autre soucis,

En faisant des tests j'ai remarqué que les fichiers générés ayant dans leurs noms $_.MAC_FW,
si dans mon csv j'ai deux lignes avec la même donnée dans $_.MAC_FW, un seul fichier sera généré et non deux

En gros le programme ne veut pas générer deux fichiers avec le même nom

j'ai testé le Add-Content à la place du Set-Content mais la ça met le contenu des deux lignes dans un seul fichier et non deux comme voulu
Je suis à court d'idées :(<br><br>Message édité par: Corentin, à: 26/06/18 13:39

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

Plus d'informations
il y a 7 ans 8 mois #25677 par Laurent Dardenne
Salut,
Corentin écrit:

Je suis à court d'idées

Si dans ton contexte ta donnée n'est pas unique elle ne peut être une clé primaire. dans ce cas ajoute une donnée pour crée 'une clé primaire unique'.
Exemple :
nom de serveur : possible duplication
Domaine+nom de serveur : duplication impossible dans le contexte d'un AD.

Tutoriels PowerShell

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

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