IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

tester la valeur d'une colone d'un csv


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut tester la valeur d'une colone d'un csv
    Bonjour,

    je voudrais faire un script pour tester des colones dans un csv

    le fichiers se compose de 3 colonnes
    ID1,ID2,code

    je voudrais ajouter une 4eme colonne "groupe" avec les tests suivant

    si code= "TOTO" et ID1 est numeric afficher "Ok"
    si code <> "TOTO" et ID1 est numeric afficher "Nok"
    si ID1 n'est pas numeric afficher "Supprimer"


    je voudrais ajouter une 5eme colonne (id definitif) avec les tests suivant
    si groupe ="ok"
    et id2<>"" afficher ID2 else ID1

    si groupe ="nok"
    et id2<>"" afficher ID2 else ID2


    le but final est de sortir 2 fichiers
    la liste des "id defintif" des statuts ok et nok

    merci pour votre aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut
    j'ai tester sans succes ce code

    colonne :
    'ID;Local;Code;Outil;ID_def'
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Get-Content $folderPathDest2 |
     ForEach-Object{ If(isnumeric($code)} -or { $Code="TOTO" }) Else { $_.Outils eq "Nok"} |
     Out-File $folderPathDest2

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    le fichiers se compose de 3 colonnes
    ID1,ID2,code
    <>
    colonne :
    'ID;Local;Code;Outil;ID_def'

    Je te conseil de revoir les opérateurs pour commencer : http://nacta.fr/?p=175

    isnuméric n'est pas native au langage PowerShell, utilise match $machaine -match "^\d+$"

    Comme déjà conseillé, tu devrait utiliser Import-Csv pour importer un fichier csv

    Pour modifier/ajouter des colonnes tu doit utiliser Select-Object. Plus précisément, les propriétés calculées (voir exemple 10)

    Essai de tester ton code au fur et à mesure, petit à petit.

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut
    Effectivement a la base j'ai 3 colonnes
    je desire en rajouter 2 Outils et id_Def

    J'ai mis un replace pour simplifier le nom des colonnes et j'en profite pour créér les entetes

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    (gc $folderPathDest) -replace 'Employee ID;Application_ID;Company Code','ID;Local;Code;Outil;ID_def' | Set-Content $folderPathDest2

    Le but etant d'alimenter les colonnes Outils et ID_Def
    pour récupérer uniquement la colonne ID_Def dans deux fichiers distinct : code "OK" et "NOK"

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Import-Csv ($folderPathDest2)
     
    # if ($Code -Nomatch "^\d+$") {
    # Select Objet $Outils = "SUPPRIMER"
    # }
     
    if ($Code -eq "TOTO" -and $Code -match "^\d+$") {
    Select Objet $Outils = "NOK"
    }
     Export-Csv ($folderPathDest2) -NoTypeInformation

  5. #5
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut
    Pouvez-vous me donner une syntaxe qui pourra m'aiguiller pour résoudre ce type d'action ?

    merci d'avance

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Je n'ai pas tout comprit mais voici un code qui te permettra de débuter.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Import-Csv -Path "Monfichier.csv" | 
    Select-Object *, @{Label="groupe";Expression={If($_.ID1 -notmatch "^\d+$") {"Supprimer"} ElseIf ($_.Code -eq "TOTO") {"Ok"} Else {"Nok"}}} | 
    Select-Object *, @{Label="id definitif";Expression={If($_.groupe -eq "ok" -and $_.id2 -eq "") {$_.ID1} Else {$_.ID2}}} |
    Export-Csv -Path "Monfichier2.csv" -NoTypeInformation

Discussions similaires

  1. [JSTL] Tester la valeur d'une variable en mode debug
    Par neowind dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 12/06/2007, 23h25
  2. [VBA] tester la valeur d'une checkbox
    Par titof90 dans le forum VBA Access
    Réponses: 9
    Dernier message: 25/04/2007, 11h40
  3. [VBA-E] tester la valeur d'une plage de données sans boucle
    Par bibi5883 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/04/2007, 08h36
  4. [vb2005]Tester la valeur d'une cellule d'un datagridview
    Par stargates dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2006, 10h09
  5. Tester les valeur d'une liste déroulante
    Par st0nky dans le forum Langage
    Réponses: 1
    Dernier message: 04/12/2005, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo