0
votes

Lecture de ligne spécifique dans le fichier avec index inconnu à l'aide de Powershell?

J'ai un fichier dans un fichier qui semble ci-dessous. xxx

Je veux lire la ligne spécifique, pour l'exemple que je veux lire class_1 . Mais l'index du class_1 gardant à l'esprit que l'index est dynamique et pourrait changer. xxx


3 commentaires

Jetez un coup d'oeil à la Select-String-String cmdlet. Il faudra récupérer la ligne qui contient le motif que vous le donnez. [ Grin ]


Alors, maintenant que vous utilisez Select-String ... Qu'est-ce qui n'est pas aussi besoin que vous en avez besoin? Ce code [malheureusement la réutilisation du même var] devrait avoir la ligne souhaitée que la variable $ Fichier .


Select-String utilise RegularExpressions pour le motif, essayez donc (Select-String -Path '. \ File_Input' -Pattern "(? <= Class_1 =). * / Code> qui utilise un LOETFEEDIND


5 Réponses :


-1
votes

Vous pouvez dire à votre programme que s'il l'a trouvé class_1 dans le script, prenez les données après le = . .


0 commentaires

1
votes

Vous pouvez faire quelque chose comme ce qui suit pour lire votre fichier INI et sélectionner la ligne contenant class_ numéro : xxx

à partir de là, vous pouvez utiliser $ données pour accéder à différentes parties de la ligne. Voir ci-dessous quelques exemples: xxx

Voici les sorties du code ci-dessus: xxx


0 commentaires

1
votes

edit

Comme suggéré ici est le code à nouveau avec quelques commentaires. J'ai également modifié une partie du code pour expliquer davantage comment obtenir les valeurs individuelles des paramètres du fichier. xxx


2 commentaires

Bien que ce code puisse résoudre la question, y compris une explication de la manière et pourquoi cela résout le problème aiderait vraiment à améliorer la qualité de votre poster et aboutit probablement à plus de votes ultérieurs. N'oubliez pas que vous répondez à la question des lecteurs à l'avenir, pas seulement la personne qui demande maintenant. S'il vous plaît Modifier Votre réponse Pour ajouter des explications et donner une indication de quelles limitations et hypothèses s'appliquent.


Point pris. J'ai ajouté d'autres explications.



1
votes

Pas besoin de vous inquiéter de l'endroit où il apparaît dans le fichier. Tirer parti de la force de ConvertFrom-stringdata ​​code> ici. Il convertit une liste de paires de valeur clé dans une hache.

  1. lire dans le fichier. li>
  2. Filtrer les points-virgules, doublez les backslashes (comme on le voit comme une séquence d'échappement plus tard) et ignorer les limites d'enregistrement. li>
  3. Store en tant que chaîne unique et passe à ConvertFrom-StringData ​​Code> Li>
  4. Convertir à l'objet PowerShell Li> ol>
    xxx pré>

    donc en utilisant ce qui précède, c'est ce que $ $ information code> ressemblerait. P>

    Class_1      : US13091990#1Joyce#2Female
    School       : St.Joseph\JuniorHighSchool
    Date         : 190303
    Phone_Number : 98233215.00
    ID           : F1
    


0 commentaires

1
votes

L'objet renvoyé à partir de Select-String est un objet MatchInfo. Cela peut vous donner des problèmes lorsque vous essayez d'utiliser le résultat en tant que chaîne. Voici une façon de gérer cela ... et d'analyser la sortie en $ var.

Vous préférerez peut-être analyser la ligne dans un pscustomobject. Si vous avez des problèmes avec cela et que vous voulez de l'aide, veuillez demander. [ grin ]

le code ... xxx

sortie ... xxx < / pré>


0 commentaires