gestion des fichiers

33
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

Upload: omafann

Post on 28-Nov-2015

24 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Gestion Des Fichiers

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

Page 2: Gestion Des Fichiers

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..

Page 3: Gestion Des Fichiers

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

Page 4: Gestion Des Fichiers

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

Page 5: Gestion Des Fichiers

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

Page 6: Gestion Des Fichiers

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

Page 7: Gestion Des Fichiers

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

Page 8: Gestion Des Fichiers

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

Page 9: Gestion Des Fichiers

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

Page 10: Gestion Des Fichiers

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

Page 11: Gestion Des Fichiers

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

Page 12: Gestion Des Fichiers

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 .

Page 13: Gestion Des Fichiers

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.

Page 14: Gestion Des Fichiers

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

Page 15: Gestion Des Fichiers

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

Page 16: Gestion Des Fichiers

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

Page 17: Gestion Des Fichiers

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

Page 18: Gestion Des Fichiers

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

>

Page 19: Gestion Des Fichiers

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

Page 20: Gestion Des Fichiers

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

Page 21: Gestion Des Fichiers

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).

Page 22: Gestion Des Fichiers

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.

Page 23: Gestion Des Fichiers

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

Page 24: Gestion Des Fichiers

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

Page 25: Gestion Des Fichiers

La gestion de fichiers

Paramètres de Get-Content

8.2 Lecture des données avec Get-Content

Page 26: Gestion Des Fichiers

La gestion de fichiers

8.2 Lecture des données avec Get-Content

Page 27: Gestion Des Fichiers

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

Page 28: Gestion Des Fichiers

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

Page 29: Gestion Des Fichiers

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

Page 30: Gestion Des Fichiers

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

Page 31: Gestion Des Fichiers

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

Page 32: Gestion Des Fichiers

La gestion de fichiers

8.3 Recherche de contenu avec Select-String

Page 33: Gestion Des Fichiers

La gestion de fichiers

Exemple 11: PS>Select-String d:\*.txt –pattern ‘powershell’

8.3 Recherche de contenu avec Select-String