Powershell ,Lire à partir d'un fichier txt et le Format des Données( supprimer des lignes, supprimer les espaces vides entre les deux)
Je suis vraiment très nouveau pour powershell. Je veux utiliser powershell pour lire un fichier txt et le changer en un autre format.
- Lire à partir d'un fichier txt.
- Format de Données( supprimer des lignes, supprimer les espaces vides entre les deux)
- Nombre d'enregistrements ( "T 000000002" 9 caractères)
et puis écrire le résultat dans un nouveau fichier.
J'ai juste commencé à powershell il y a deux jours donc je ne sais pas comment le faire encore.
OriginalL'auteur user350332 | 2010-06-23
Vous devez vous connecter pour publier un commentaire.
Lecture à partir d'un fichier:
Pas tout à fait sûr de ce que vous voulez ici.
Get-Content
retourne un tableau de chaînes de caractères. Vous pouvez ensuite manipuler ce que vous obtenez et le transmettre. Le plus utile des applets de commande ici sont probablementWhere-Object
(pour le filtrage) etForEach-Object
(pour la manipulation).Par exemple, pour supprimer toutes les lignes vides que vous pouvez faire
Cela peut être raccourcie à
depuis une chaîne vide dans un contexte booléen évalue à
false
.Ou de supprimer les espaces dans chaque ligne:
De nouveau, pas tout à fait sûr de ce que vous cherchez ici. Possible des choses que je pouvais penser de votre excessivement complexes description sont quelque chose le long des lignes de
ou
>
crée un fichier dans Unicode. Si vous avez besoin de spécifier le codage, utilisation...| Set-Content filename -encoding Utf8
.... ou
Out-File
, de la même façon. @stej: votre “Unicode” sens “UTF16-LE” dans ce cas 🙂Salut à tous de votre aide a été très utile. Mais je suis encore à essayer de comprendre comment compter le nombre de lignes. je suis capable de supprimer les espaces Mon code pour l'instant est de $s = get-content D:\MyScripts\members.txt | Foreach-Object { ($_ -remplacer '-', ") } | Foreach-Object { ($_ -remplacer "OP_ID', ") } | Foreach-Object { ($_ -remplacer "EFF_DT', ") } | where-Object { $_ -ne " }| Supprimer des Espaces $s | set-content D:/MyScripts/nmembers.txt
Stocker le résultat dans une variable, qui sera une
Object[]
. Il a unLength
de la propriété. Vous pouvez alors l'enregistrer dans le fichier. Ou vous utilisezTee-Object
pour envoyer le fichier et l'ajout d'unMeasure-Object
à la fin de la canalisation. L'objet résultant a uneCount
de la propriété.Grâce Rossel, vos suggestions ont été vraiment de l'aide totale. Mais la Mesure n'a pas de travail pour moi. il a renvoyé l'espace de noms dans la sortie, si j'ai utilisé de la Mesure. Donc j'ai utilisé le Comte-Objet $b "{T, 0:D9}" -f $b ci-Dessous mon Script Complet.
OriginalL'auteur Joey
OriginalL'auteur user350332
J'aime aussi l' ? utilisé à la place de l'where-object pour les couper vers le bas juste que beaucoup plus.
OriginalL'auteur ssaviers