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 :

Comment récupérer certaines lignes d'un fichier pour ensuite s'en servir [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Comment récupérer certaines lignes d'un fichier pour ensuite s'en servir
    Bonjour! Je suis débutant en powershell et je viens de découvrir ce magnifique forum. Peut-être que quelqu'un pourra m'aider.

    J'ai un fichier backup.conf qui contient disons ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #Fichiers à sauvegarder
    C:\Users\Admin\Favorites\Links\*
    C:\Users\Admin\Links\*
    Je tente de récupérer certaines lignes (disons les 2 dernières du bas) pour ensuite sauvegarder leurs contenues dans une archive zip.

    J'ai tenté de faire 2 trucs différents, mais cela ne me semble pas très optimal.

    Tentative #1 :

    J'essaie de sélectionner les lignes qui commence par la lettre c. Le problème est que powershell me met le nom du fichier juste avant ce que je veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select-string -path "backup.conf"  -pattern "^c"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    résultat: backup.conf:9:C:\Users\Admin\Favorites\Links\*
                backup.conf:9:C:\Users\Admin\Links\*
    J'aimerais avoir seulement le chemin et pas le truc qui le précède.

    J'essaie alors ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get-content -path "backup.conf" | select-object -skip "1"
    Le résultat me permet alors d'avoir seulement la ligne de commande sans le nom de fichier qui le précède.

    Mais je trouve que -skip n'est pas génial car il serait possible qu'il y est des lignes en commentaire précédent les lignes répertoire qui m'intéresse.

    Y aurait-il une façon d'aller chercher ces lignes de commandes en prenant en considération qu'il pourrait y en avoir plusieurs?

    Merci!

  2. #2
    Membre éclairé Avatar de messinese
    Homme Profil pro
    IT Security Consultant
    Inscrit en
    Septembre 2007
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IT Security Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 429
    Points : 876
    Points
    876
    Par défaut
    Bonjour,

    je comprends pas: pourquoi ne pas simplement lire le fichier et récupérer ce que tu veux avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Get-Content:
    $File = Get-Content C:\folder\backup.conf
    ?

    Aprés il ne te reste qu'a trier et voila, non ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par messinese Voir le message
    Bonjour,

    je comprends pas: pourquoi ne pas simplement lire le fichier et récupérer ce que tu veux avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Get-Content:
    $File = Get-Content C:\folder\backup.conf
    ?

    Après il ne te reste qu'a trier et voila, non ?
    Merci de l'aide que tu m'apporte. En fait, je ne sais pas trop comment m'y prendre pour sélectionner certaine ligne pour ensuite sauvegarder leurs contenus.

    J'ai suivi ton conseil de mettre le tout dans une variable. Ensuite, j'arrive à lire les lignes commençant par la lettre C. J'aimerais faire un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select-string -path "$file"  -pattern "^c"  #|  foreach-object {copy-item $_ -destination C:\folder\backup}
    Je sais que la syntaxe est mauvaise, mais est-ce que la logique est bonne? Ou dois-je m'y prendre d'une différente manière?

  4. #4
    Membre éclairé Avatar de messinese
    Homme Profil pro
    IT Security Consultant
    Inscrit en
    Septembre 2007
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IT Security Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 429
    Points : 876
    Points
    876
    Par défaut
    Re,

    je te suggère ceci qui marche aprés à toi d'adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-Content "liste.txt" |  select-string   -pattern "C:" | foreach-object { write-Output $_ >> "pwet.txt"}
    je lui ai donné ceci en entrée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    liste.txt
    #Fichiers à sauvegarder
    C:\Users\Admin\Favorites\Links\*
    
    test divers
    *
    C:\Users\Admin\Links\*
    Et il m'a créé un
    pwet.txt
    contenant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:\Users\Admin\Favorites\Links\*
    
    C:\Users\Admin\Links\*
    je pense que c'est à peu prés ce que tu veux, je me trompe ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Wow! C'est plutôt génial ça! Merci beaucoup de ton aide

  6. #6
    Membre éclairé Avatar de messinese
    Homme Profil pro
    IT Security Consultant
    Inscrit en
    Septembre 2007
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IT Security Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 429
    Points : 876
    Points
    876
    Par défaut
    De rien et avec plaisir on est ici pour s'entre-aider pas vrai ;-) puis ça pourra servir à d'autre .

    Penses au tag "résolu" au passage !

    Cdlt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment ignorer certaines lignes d'un fichier
    Par Popeye63 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/11/2012, 15h54
  2. [PowerShell] Récupérer certaines lignes d'un fichier txt dans un autre
    Par TanKer dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 16/11/2011, 21h31
  3. Réponses: 13
    Dernier message: 09/11/2011, 12h06
  4. Récupérer certaine lignes d'un fichier
    Par piktux dans le forum Général Python
    Réponses: 37
    Dernier message: 09/02/2010, 09h46
  5. Réponses: 14
    Dernier message: 05/05/2008, 15h35

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