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 :

lire les lignes sélectionné dans un fichier csv (PowerShell)


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2021
    Messages : 1
    Par défaut lire les lignes sélectionné dans un fichier csv (PowerShell)
    Bonjour à tous,

    je viens de commencer dans le monde de powershell je suis entrain de faire un script pour reboot des VM et je suis bloqué à un endroit.

    j'ai un script qui import u fichier csv. Ce fichier csv est composé de trois colonnes:

    ColonneA, ColonneB, ColonneC

    je voudrais que mon script puisse analyser la colonne C. Si la colonneC contient "X", je voudrais qu'il s'execute sur toute la ligne du tableau. j'ai essayé de faire quelqeu chose mais cela ne marche pas, le script ne prend pas encompte la commande if select, du coup il s'execute sur toute les lignes du tableau. Je bloque à cet endroit. j'ai cherché des solutions et j'ai rien trouvé un sujet pareil.

    N'importe quelle aide serais bénéfique pour moi. Je suis étudiant et c'est un projet que je dois faire pour mes cours.

    vous trouverez ci joint le code

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $ListGroupCSV = Import-Csv -Path "C:\Users\Group.csv" -Delimiter ","
    foreach ($UnGroup in $ListGroup)
    {   
        $NomGroup = $UnGroup.NomGroup;   
        $Select =  $UnGroup.Select;
        if ($Select -eq "X")
         {  
            $ListVMs = Import-Csv -Path $NomGroup -Delimiter ","
            foreach ($UneVM in $ListVMs)
            {
                $NomVM = $UneVM.NomVM;
     
                Shutdown-VMGuest $NomVM -Confirm: $false
     
                do
                {
                 sleep 3
                 $NomVM = Get-VM -Name $NomVM
                 Write-Host $NomVM.PowerState
            }until ($NomVM.PowerState -eq "PoweredOff")
     
             Write-Host "$NomVM est bien arrêté"
            }
        }

    Merci en avance

  2. #2
    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
    Tu stocke les informations dans $ListGroupCSV puis tu va les chercher dans $ListGroup (erreur de débutant )
    J'ai essayé de ne pas trop modifier ton code.

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $ListGroup = Import-Csv -Path "C:\Users\Group.csv" -Delimiter "," | Where-Object {$_.Select -eq "X"}
     
    foreach ($NomGroup in $ListGroup.NomGroup)
    {   
        $ListVMs = Import-Csv -Path $NomGroup -Delimiter ","
     
        foreach ($NomVM in $ListVMs.NomVM)
        {
            Shutdown-VMGuest $NomVM -Confirm:$false
            do
            {
                Start-Sleep -Seconds 3
                $objVM = Get-VM -Name $NomVM
                Write-Host $objVM.PowerState
            } until ($objVM.PowerState -eq "PoweredOff")
     
            Write-Host "$NomVM est bien arrêté"
        }
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/11/2010, 15h15
  2. Lire une ligne spécifique dans un fichier texte
    Par ZRemi dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/04/2010, 13h58
  3. Réponses: 55
    Dernier message: 16/11/2008, 17h32
  4. Réponses: 2
    Dernier message: 09/06/2007, 22h09
  5. Réponses: 5
    Dernier message: 16/03/2005, 22h17

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