8.1 Envoi de donnes dans un fichier 8.2 Les fichiers texte avec Out-File 8.3 Redirection du flux Standard 8.4 Cration des fichiers binaire avec Set-Content 8.5 Lecture des donnes avec Get-Content 8.6 Recherche de contenu avec select-String 8.7 Gestion des fichiers CSV
La gestion de fichiers
Windows powershell traite gnralement les fichiers texte unicode de faon native. Conrtairement CMD.exe qui manipule les fichiers ASCII. Pour des raisons de compatibilit ,il est possible de forcer les commandelettes utiliser dautres encodages comme ,ASCII,UTF8,UTF32 etc..
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Il ya deux faons de procder pour crire des donnes dans un fichier: Set-Content Out-File
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
ces deux commandes servent crer des fichiers et des donnes. La diffrence qui existe :
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
lorsque Out-File est utilis, il va tenter ,tout comme les autres commandes out-*,de formater le flux avant dcrire dans le fichier. Set-Content ne cherche pas formater le flux mais elle lui applique seulement la mthode ToString afin dtre sre dcrire des caractres.
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Exemple 1: le rsultat de cette commande crira dans un fichier le type de lobjet au lieu de son contenu .
PS>Get-Process powershell | Set-Content fichier.txt PS>Get-Content fichier.txt System.Diagnostics.Process (powershell)
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Exemple 2: la commande suivante nous donne le rsultat attendu .
PS>Get-Process powershell | Out-File fichier.txt PS>Get-Content fichier.txt
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Transtypage: Pour obtenir le mme rsultat avec Set-Content,il aurait fallu effectuer un transtypage sur lobjet avant de lcrire :
PS>Get-Process powershell | OutString Stream | SetContent fichier.txt
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Out-String nous permet de convertir les objets mis en les reprsentant sous forme de chane. Le paramtre Stream permet denvoyer au pipe autant de chanes que dobjets reus, au lieu denvoyer une chane unique contenant la reprsentation de tous les objets.
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Set-Content permet dcrire directement des octets dans un fichier grce au paramtre - encoding Byte .
Rsum: On aura plutt tendance privilgier lutilisation de OutFile pour crer des fichiers textes, et Set-Content pour des fichiers Binaires .
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
8.1.1 Fichiers textes avec Out-File Cette commandelette va nous permettre de crer des fichiers et leurs contenus associs .Out-File a un certain nombre des paramtres supplmentaires.
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Description
Fichier de destination Type dencodage (par defaut :Unicode) Ajoute du contenu un fichier existant Nombre de caractre maxi par ligne . Objet crire dans le fichier Indique de ne pas remplacer le fichier existant .
Paramtres
Ascii UTF7
Description
OEM
Utilise lidentificateur de la plage de codes du fabricant de lordianteur OEM(Original Equipement Manufacturer)actuel du systme.
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
8.1.1 Fichiers textes avec Out-File Microsoft Windows travaille en interne en unicode avec UTF16 LittleEndian .
LittleEndian signifie que dans un mot (2 octet),loctet le moins significatif est positionn en premier. Exemple: si lon souhaite cod 10(base dcimal) en Hexadcimal sur 16bits cela donnerait: 00 0A en littleEndian et 0A 00 en BigEndian
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
8.1.1 Fichiers textes avec Out-File Exemple 3: cration dun fichier contenant les informations sur un processus.
PS>Get-Process powershell |out-file d:\fichier1.txt encoding ascii
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
8.1.1 Fichiers textes avec Out-File Exemple 4: Ajout des donnes dans un fichier existant.
PS>Get-date |out-file d:\fichier1.txt -Append Encoding ascii
Cette commande va ajouter des donnes dans le fichier fichier.txt que nous avons crer prcdemment . Rmarque: spcifiez toujours le mme format dencodage.
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
8.1.1 Redirection des flux standard loperateur > reprsente la forme la plus simple pour crer un fichier. Exemple 5: PS>Get-ChildItem c:\ > dir.txt
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
8.1.1 Redirection des flux standard les oprateurs de redirection de flux > et >> font appel en ralit la commandelette > Out-File .pour en savoir voyons la sortie de Tracecommand .
La gestion de fichiers
8.1 Envoi de donnes dans un fichier
Cmdlet found:Out-File
La gestion de fichiers
8.2 Cration des fichiers binaires avec Set-Content
Contrairement Out-File,Set-Content crit les donnes telle quelle les reoit .elle crit directement les donnes dans un fichier quel que soit le type (texte ou binaire) . Set-content crase le contenu de fichier de destination car elle ne possede pas de switch append comme Out-File. Set-Content fait partie de la famille des cmdlets *-Content : Add-Content: ajoute des donnes un fichier existant . Clear-content:efface les donnes prsentes dans un fichier mais pas le fichier. Get-Content: lit le contenu dun fichier .
Paramtres Path<String[]>
Description Fichier de destination les donnes. La gestion dereevant fichiers Donnes crire (remplaerons le contenu existant).
Value<Object[]>
Paramtres de Set-Content:
Include<String[]>
Exclude<String[]>
Filter<String>
PassThru<Switch>
Force<switch>
Force la commande russir sans compromettre la scurit,exemple:en crant le rpertoire de destination sil nexiste pas.
La gestion de fichiers
Paramtres ASCII
Description
Paramtres de Set-Content:
UTF7 UTF8 Unicode
Force lEncodage en Unicode16 BigEndian. Force lEncodage en octet. Utilise le codage de la plage de code ANSI actuelle du systme.
Idem Unicode.
La gestion de fichiers
8.2 Cration des fichiers binaires avec Set-Content
Exemple 8: Ajout des donnes textuelles dans un fichier. PS> AABB | set-content test.txt La ligne de commande cre le fichier test.txt au format ANSI.
La gestion de fichiers
8.2 Lecture des donnes avec Get-Content
Get-Content va nous permettre de lire le contenu dun fichier. Ce dernier peut tre soit du type texte,soit du type binaire,peu importe. Par dfaut cette commandelette sattend lire des fichiers textes.
La gestion de fichiers
8.2 Lecture des donnes avec Get-Content
Paramtres de Get-Content
La gestion de fichiers
8.2 Lecture des donnes avec Get-Content
La gestion de fichiers
8.2 Lecture des donnes avec Get-Content
Exemple 9: fonctionalits de base PS>Get-Date > MesProcess.txt PS>Get-Process >> MesProcess.txt Ps>Get-Content MesProcess.txt TotalCount 10
La gestion de fichiers
8.2 Lecture des donnes avec Get-Content
Manipuler un fichier comme un Tableau. Exemple 10: PS>$fich= Get-Content math.txt PS>$fich[4]
La gestion de fichiers
8.2 Lecture des donnes avec Get-Content
Manipuler un fichier comme un Tableau. En utilisant une variable pour recevoir le rsultat de get-content,nous crons en ralit un tableau de ligne.
La gestion de fichiers
8.2 Lecture des donnes avec Get-Content
Lecture dun fichier en mode Brut Exemple 10: PS>powershel > brut.txt PS> Get-Content brut.txt -Encoding byte
La gestion de fichiers
8.3 Recherche de contenu avec Select-String
Select-String permet de passer en revue le contenu dune variable, dun fichier, ou dun grand nombre de fichier la recherche dune chaine de caractre sous forme dexpression rgulire. Voici les Paramtres de la chaine Select-String
La gestion de fichiers
8.3 Recherche de contenu avec Select-String
La gestion de fichiers
8.3 Recherche de contenu avec Select-String