L’une des premières choses que vous faites lorsque vous apprenez un nouveau langage informatique est d’apprendre à faire des entrées et des sorties. Nous avons appris comment faire la sortie à partir de l’astuce link: / windows-Introduction_to_PowerShell [Introduction to PowerShell]. Si vous vous en souvenez, nous avons utilisé la cmdlet Write-Output. Il est maintenant temps d’apprendre à lire un fichier et à afficher sa sortie à l’écran.

Disons que nous avons un fichier texte nommé « C: \ Temp \ Temp.txt » et qu’il contient dix lignes. Le moyen le plus simple d’afficher ces lignes consiste à utiliser l’applet de commande Get-Content. Voici à quoi cela ressemble d’exécuter cette applet de commande sur notre fichier: (Voir la figure 1.)

image

Figure 1. Get-Content lit un fichier.

Et si vous ne vouliez afficher que les trois premières lignes du fichier?

Il existe différentes manières de le faire, mais la manière la plus simple est peut-être d’utiliser des variables. Dans PowerShell, une variable peut être n’importe quel type de données et le nom de la variable commence par un « $ ». Des exemples de noms de variables incluent « $ myName », « $ numbers », « $ today », etc. Vous attribuez une valeur à une variable avec un signe « = », donc une commande PowerShell légale serait

PS> $myName = 'Barry'

Avec cet arrière-plan, nous en savons maintenant assez pour afficher les trois premières lignes de notre fichier. Nous attribuerons le contenu du fichier à une variable appelée $ lines, puis afficherons its les trois premières lignes: (voir la figure 2.)

image

Figure 2. Utilisation d’une variable.

Ici, nous affectons le contenu du fichier à la variable $ lines (qui est en fait un tableau) et utilisons la syntaxe « [0..2] » pour accéder aux éléments 0, 1 et 2 du tableau. L’élément 0 est la première ligne; l’élément 1 est la deuxième ligne; et l’élément 2 est la troisième ligne.

Il est tout aussi facile d’accéder aux dernières lignes du tableau. Ceci est fait en utilisant des indices négatifs, donc $ line [-1] est la dernière ligne du tableau; $ line [-2] est l’avant-dernière ligne du tableau; etc. La figure suivante montre comment afficher les trois dernières lignes de notre fichier: (Voir la figure 3.)

image

Figure 3. Accès à un tableau en utilisant des indices négatifs.

Une autre façon de récupérer du texte à partir d’un fichier est de le rechercher et d’afficher les résultats. Pour rechercher du texte dans PowerShell, vous utilisez la cmdlet Select-String. Select-String prend beaucoup de commutateurs, que vous pouvez voir si vous demandez de l’aide sur l’applet de commande, mais un formulaire simple nécessite que vous spécifiiez simplement le nom de fichier et le modèle que vous recherchez. Donc, si je voulais trouver toutes les lignes de mon fichier qui contiennent le texte « ligne » (qui serait chaque ligne), je pourrais le faire comme ceci: (Voir Figure 4.)

image

Figure 4. Recherche d’un fichier pour un motif.

Select-String est assez puissant car il recherche à l’aide d’expressions régulières. (Il existe une autre astuce intitulée « Introduction aux expressions régulières ».) Donc, si vous vouliez trouver toutes les lignes qui commencent par un « l » et se terminent par un seul chiffre (c’est-à-dire toutes les lignes sauf la ligne 10), cela ressemblerait ceci: (voir figure 5.)

image

Figure 5. Recherche d’un fichier à l’aide d’une expression régulière.

Nous avons beaucoup parlé de lecture de fichiers, nous devrions donc finir par parler d’écriture de fichiers. Bien sûr, vous pouvez utiliser le familier « > »

caractère pour rediriger votre sortie vers un fichier, mais dans PowerShell, vous pouvez également utiliser l’applet de commande Out-File pour envoyer la sortie vers un fichier.

Supposons que vous vouliez obtenir une liste de tous les processus actifs sur votre système. L’applet de commande pour cela est Get-Process. Une partie de la sortie de Get-Process est affichée ici: (Voir la figure 6.)

image

Figure 6. Sortie partielle de Get-Process.

Notez que la huitième ligne à partir de la dernière est tronquée. Cette ligne se termine par « vmware-usbarbitrat …​ ». Si nous devions simplement envoyer cette sortie dans un fichier, le fichier contiendrait également cette ligne tronquée. Au lieu de cela, nous pouvons utiliser le commutateur « -width » d’Out-File pour indiquer que nous voulons une largeur plus grande afin d’éviter la troncature. Voici notre commande pour obtenir les processus, diriger la sortie vers Out-File et spécifier une largeur pour la sortie:

PS C:\Bat> Get-Process | Out-File C:\Temp\Temp2.txt -width 100

Cette astuce (13507) s’applique à Windows 7, 8 et 10.