Upload
omafann
View
24
Download
2
Embed Size (px)
Citation preview
La gestion de fichiers
8.1 Envoi de données dans un fichier
8.2 Les fichiers texte avec Out-File
8.3 Redirection du flux Standard
8.4 Création des fichiers binaire avec Set-Content
8.5 Lecture des données avec Get-Content
8.6 Recherche de contenu avec select-String
8.7 Gestion des fichiers CSV
La gestion de fichiers
Windows powershell traite généralement les fichiers texte unicode de façon native.
Conrtairement à CMD.exe qui manipule les fichiers ASCII.
Pour des raisons de compatibilité ,il est possible de forcer les commandelettes à utiliser d’autres encodages comme ,ASCII,UTF8,UTF32 etc..
La gestion de fichiers
Il y’a deux façons de procéder pour écrire des données dans un fichier:
Set-Content
Out-File
8.1 Envoi de données dans un fichier
La gestion de fichiers
ces deux commandes servent à créer des fichiers et des données.
La différence qui existe :
8.1 Envoi de données dans un fichier
La gestion de fichiers
lorsque Out-File est utilisé, il va tenter ,tout comme les autres commandes out-*,de formater le flux avant d’écrire dans le fichier.
Set-Content ne cherche pas à formater le flux mais elle lui applique seulement la méthode ToString afin d’être sûre d’écrire des caractères.
8.1 Envoi de données dans un fichier
La gestion de fichiers
Exemple 1: le résultat de cette commande écrira dans un fichier le type de l’objet au lieu de son contenu .
PS>Get-Process powershell | Set-Content fichier.txt
PS>Get-Content fichier.txt
System.Diagnostics.Process (powershell)
8.1 Envoi de données dans un fichier
La gestion de fichiers
Exemple 2: la commande suivante nous donne le résultat attendu .
PS>Get-Process powershell | Out-File fichier.txt
PS>Get-Content fichier.txt
8.1 Envoi de données dans un fichier
La gestion de fichiers
Transtypage:
Pour obtenir le même résultat avec Set-Content,il aurait fallu effectuer un transtypage sur l’objet avant de l’écrire :
PS>Get-Process powershell | Out–String –Stream | Set-Content fichier.txt
8.1 Envoi de données dans un fichier
La gestion de fichiers
Out-String nous permet de convertir les objets émis en les représentant sous forme de chaîne.
Le paramètre Stream permet d’envoyer au pipe autant de chaînes que d’objets reçus, au lieu d’envoyer une chaîne unique contenant la représentation de tous les objets.
8.1 Envoi de données dans un fichier
La gestion de fichiers
Set-Content permet d’écrire directement des octets dans un fichier grâce au paramètre « - encoding Byte » .
Résumé:
On aura plutôt tendance à privilégier l’utilisation de Out-File pour créer des fichiers textes, et Set-Content pour des fichiers Binaires .
8.1 Envoi de données dans un fichier
La gestion de fichiers
8.1.1 Fichiers textes avec Out-File
Cette commandelette va nous permettre de créer des fichiers et leurs contenus associés .Out-File a un certain nombre des paramètres supplémentaires.
8.1 Envoi de données dans un fichier
La gestion de fichiers
8.1.1 Fichiers textes avec Out-File
Les valeurs possibles:
8.1 Envoi de données dans un fichier
Paramètres Description
FilePath<String> Fichier de destination
Encoding<String>
Type d’encodage (par defaut :Unicode)
Append<Switch>
Ajoute du contenu à un fichier existant
Width<int> Nombre de caractère maxi par ligne .
InputObject<PSOBject> Objet à écrire dans le fichier
NoClobber<Switch> Indique de ne pas remplacer le fichier existant .
La gestion de fichiers
8.1.1 Fichiers textes avec Out-File
Les valeurs possibles pour les paramètres d’encodage:
8.1 Envoi de données dans un fichier
Paramètres Description
Ascii Force l’encodage en ASCII de Base(jeu de caractères 0 à 127,7 bits).
UTF7
Force l’encodage en unicode UTF7 (Unicode Transformation Format).
UTF8
Force l’encodage en unicode UTF .
Unicode Force l’encodage en unicode UTF 16 LittleEndian .
BigEndianUnicode Force l’encodage en unicode UTF 16 BigEndian .
UTF32 Force l’encodage en unicode UTF32 LittleEndian .
Default Utilise l’encodage de la plage de code ANSI actuelle du système.
OEM Utilise l’identificateur de la plage de codes du fabricant de l’ordianteur OEM(Original Equipement Manufacturer)actuel du système.
La gestion de fichiers
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),l’octet le moins significatif est positionné en premier.
Exemple: si l’on souhaite codé 10(base décimal) en Hexadécimal sur 16bits cela donnerait:
00 0A en littleEndian et 0A 00 en BigEndian
8.1 Envoi de données dans un fichier
La gestion de fichiers
8.1.1 Fichiers textes avec Out-File
Exemple 3: création d’un fichier contenant les informations sur un processus.
PS>Get-Process powershell |out-file d:\fichier1.txt –encoding ascii
Cette commande va créer le fichier ascii fichier.txt .
8.1 Envoi de données dans un fichier
La gestion de fichiers
8.1.1 Fichiers textes avec Out-File
Exemple 4: Ajout des données dans un fichier existant.
PS>Get-date |out-file d:\fichier1.txt -Append –Encoding ascii
Cette commande va ajouter des données dans le fichier fichier.txt que nous avons créer précédemment .
Rémarque: spécifiez toujours le même format d’encodage.
8.1 Envoi de données dans un fichier
La gestion de fichiers
8.1.1 Redirection des flux standard
l’operateur « > » représente la forme la plus simple pour créer un fichier.
Exemple 5:
PS>Get-ChildItem c:\ > dir.txt
8.1 Envoi de données dans un fichier
La gestion de fichiers
8.1.1 Redirection des flux standard
les opérateurs de redirection de flux « > » et « >> »font appel en réalité à la commandelette Out-File .pour en savoir voyons la sortie de « Trace-command » .
8.1 Envoi de données dans un fichier
>
La gestion de fichiers
8.1.1 Redirection des flux standard
Exemple7:Trace-command –Name CommandDiscovery –expression {get-
date>dir.txt} -PSHost
8.1 Envoi de données dans un fichier
Cmdlet found:Out-File
La gestion de fichiers
Contrairement à Out-File,Set-Content écrit les données telle qu’elle les reçoit .elle écrit directement les données 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 données à un fichier existant . Clear-content:efface les données présentes dans un fichier
mais pas le fichier. Get-Content: lit le contenu d’un fichier .
8.2 Création des fichiers binaires avec Set-Content
La gestion de fichiers
Paramètres de Set-Content:
8.2 Création des fichiers binaires avec Set-Content
Paramètres Description
Path<String[]> Fichier de destination reçevant les données.
Value<Object[]>
Données à écrire (remplaçerons le contenu existant).
Include<String[]>
Modifie uniquement les données spécifiés.
Exclude<String[]>
Omet les données spécifiés.
Filter<String>
Spécifie un filtre dans le format ou le langage du fournisseur.
PassThru<Switch>
Passe l’objet créé par cette cmlet à travers le pipeline .
Force<switch> Force la commande à réussir sans compromettre la sécurité,exemple:en créant le répertoire de destination s’il n’existe pas.
Credential<PScredential> Utilise des information d’identification pour valider l’accès au fichier.
Encoding<String> Type d’encodage(valeur par défaut :<default> soit ANSI).
La gestion de fichiers
Paramètres de Set-Content:
8.2 Création des fichiers binaires avec Set-Content Paramètres Description
ASCII Force l’Encodage en ASCII de Base(je de caractere de 0 à 127 ,7bits).
UTF7
Force l’Encodage en Unicode UTF7.
UTF8
Force l’Encodage en Unicode UTF8.
Unicode
Force l’Encodage en Unicode16 LittleEndian.
BigEndian Unicode
Force l’Encodage en Unicode16 BigEndian.
Byte
Force l’Encodage en octet.
String Utilise le codage de la plage de code ANSI actuelle du système.
Unknown Idem Unicode.
La gestion de fichiers
Exemple 8: Ajout des données textuelles dans un fichier.
PS> ‘AAéBB ’ | set-content test.txt
La ligne de commande crée le fichier test.txt au format ANSI.
8.2 Création des fichiers binaires avec Set-Content
La gestion de fichiers
Get-Content va nous permettre de lire le contenu d’un fichier.
Ce dernier peut être soit du type texte,soit du type binaire,peu importe.
Par défaut cette commandelette s’attend à lire des fichiers textes.
8.2 Lecture des données avec Get-Content
La gestion de fichiers
Paramètres de Get-Content
8.2 Lecture des données avec Get-Content
La gestion de fichiers
8.2 Lecture des données avec Get-Content
La gestion de fichiers
Exemple 9: fonctionalités de base
PS>Get-Date > MesProcess.txt
PS>Get-Process >> MesProcess.txt
Ps>Get-Content MesProcess.txt –TotalCount 10
8.2 Lecture des données avec Get-Content
La gestion de fichiers
Manipuler un fichier comme un Tableau.
Exemple 10:
PS>$fich= Get-Content math.txt
PS>$fich[4]
8.2 Lecture des données avec Get-Content
La gestion de fichiers
Manipuler un fichier comme un Tableau.
En utilisant une variable pour recevoir le résultat de get-content,nous créons en réalité un tableau de ligne.
8.2 Lecture des données avec Get-Content
La gestion de fichiers
Lecture d’un fichier en mode « Brut »
Exemple 10:
PS>’powershel’ > brut.txt
PS> Get-Content brut.txt -Encoding byte
8.2 Lecture des données avec Get-Content
La gestion de fichiers
Select-String permet de passer en revue le contenu d’une variable, d’un fichier, ou d’un grand nombre de fichier à la recherche d’une chaine de caractère sous forme d’expression régulière.
Voici les Paramètres de la chaine Select-String
8.3 Recherche de contenu avec Select-String
La gestion de fichiers
8.3 Recherche de contenu avec Select-String
La gestion de fichiers
Exemple 11: PS>Select-String d:\*.txt –pattern ‘powershell’
8.3 Recherche de contenu avec Select-String