Windows Scripts
Powershell
Gestion des fichiers et des dossiers



Pour : Windows


Voici une série de commande permettant de gérer les fichiers et les dossiers avec Powershell.



Sommaire
1- Get-Command
2- Get-Location
3- Get-ChildItem
4- Set-Location
5- New-Item
6- Remove-Item
7- Move-Item
8- Rename-Item
9- Copy-Item
10- Test-Path
11- Get-ChildItem



1- Extraction du contenu de l'ISO


Afficher la liste des commandes dont les alias:
Get-command


Pour afficher la syntaxe d'une commande, il suffit de rajouter l'option "-syntax":
Get-command Get-Location -syntax




2- Get-Location


Afficher le chemin du dossier courant:
Get-Location


Alias => "Get-Location" = "pwd"

Exemple:
PS C:\Users\Administrateur> Get-Location

Path
----
C:\Users\Administrateur




3- Get-ChildItem


Afficher le contenu du dossier courant:
Get-ChildItem


Afficher le contenu d'un dossier distant:
Get-ChildItem "c:\Windows"


Alias => "Get-ChildItem" = "ls" = "dir"

Exemple:
PS C:\Users\Administrateur> Get-ChildItem


    Répertoire : C:\Users\Administrateur


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-r--        17/10/2014     14:30            Contacts
d-r--        28/10/2014     12:51            Desktop
d-r--        17/10/2014     14:30            Documents
d-r--        17/10/2014     14:30            Downloads
d-r--        17/10/2014     14:30            Favorites
d-r--        17/10/2014     14:30            Links
d-r--        17/10/2014     14:30            Music
d-r--        28/10/2014     08:27            Pictures
d-r--        17/10/2014     14:30            Saved Games
d-r--        17/10/2014     14:30            Searches
d-r--        17/10/2014     14:30            Videos




4- Set-Location


Se déplacer dans les dossiers:
Set-Location "c:\Windows"


Alias => "Set-Location" = "cd"

Exemple:
PS C:\Users\Administrateur> Set-Location "c:\Windows"
PS C:\Windows>




5- New-Item


Créer un fichier vide du nom de "test.txt" dans le répertoire courant:
New-Item -Name "test.txt" -ItemType file


Pour créer un fichier du nom de "test.txt" dans un dossier qui est présent dans le répertoire courant:
New-Item -path "dossier_de_test\test.txt" -ItemType file


Pour créer un fichier du nom de "test.txt" dans un autre répertoire comme par exemple dans "c:\windows", il faut rajouter le chemin dans l'option "path":
New-Item -path "c:\windows\" -Name "test.txt" -ItemType file


Pour écraser un fichier existant, il faut rajouter l'option "-force":
New-Item -Name "test.txt" -ItemType file -force


Créer un dossier un répertoire du nom de "dossier_de_test":
New-Item -Name "dossier_de_test" -ItemType directory


Pour créer un dossier du nom de "dossier_de_test" dans un autre répertoire comme par exemple dans "c:\windows", il faut rajouter le chemin avec l'option "path":
New-Item -path "c:\windows\" -Name "dossier_de_test" -ItemType directory


Pour écraser un répertoire existant, il faut rajouter l'option "-force":
New-Item -path "c:\windows\" -Name "dossier_de_test" -ItemType directory -force




6- Remove-Item


Supprimer un dossier qui est dans le répertoire courant:
Remove-Item "dossier_de_test"


Pour supprimer un dossier qui se situe dans un autre répertoire:
Remove-Item "C:\Windows\dossier_de_test"


Pour supprimer directement un répertoire qui contient des fichiers et des sous-dossiers sans avoir à confirmer:
Remove-Item "C:\Windows\dossier_de_test" -Recurse


Alias => "-Recurse" = "-r"
Alias => "Remove-Item" = "rm"

Supprimer un fichier:
Remove-Item "test.txt"


Pour supprimer un fichier qui se situe dans un autre répertoire:
Remove-Item "C:\Windows\test.txt"




7- Move-Item


Déplacer un dossier qui est dans le répertoire courant vers un autre répertoire:
Move-Item -Path "dossier_de_test" -Destination "c:\Windows\"


Déplacer un dossier qui est situé dans un répertoire vers un autre répertoire:
Move-Item -Path "c:\Windows\dossier_de_test" -Destination "C:\Users\Administrateur\Documents"


Déplacer un fichier qui est dans le répertoire courant vers un autre répertoire:
Move-Item -Path "test.txt" -Destination "c:\Windows\"


Déplacer un fichier qui est situé dans un répertoire vers un autre répertoire:
Move-Item -Path "c:\Windows\test.txt" -Destination "C:\Users\Administrateur\Documents"


Déplacer tous les fichiers et tous les dossiers du répertoire courant (avec *) vers le répertoire supérieur (avec ..):
move-item -path * -destination ..


Déplacer un type de fichiers (.log) vers un répertoire (c:\TEMP\):
Move-Item -Path "*.log" -Destination "c:\TEMP\"


Alias => "Move-Item" = "mv" = "move"



8- Rename-Item


Renommer un dossier:
Rename-Item -Path dossier_de_test -NewName dossier_de_2014


Renommer un fichier:
Rename-Item -Path test.txt -NewName test-2014.txt


Changer l'extension (type) d'un fichier:
Rename-Item -Path test-2014.txt -NewName test-2014.log




9- Copy-Item


Copier un dossier vide:
Copy-Item -Path dossier_de_test -Destination c:\Windows


Copier un dossier avec son contenu, il faut rajouter l'option "-Recurse":
Copy-Item -Path dossier_de_test -Destination c:\Windows -Recurse


Copier un fichier:
Copy-Item -Path .\test.txt -Destination c:\Windows


### Si le fichier de destination existe déjà, il faut rajouter l'option "-Force":
###
Copy-Item -Path .\test.txt -Destination c:\Windows -Force


Alias => "-Recurse" = "-r"
Alias => "Copy-Item" = "cp" = "copy"



10- Test-Path


Vérifier l'existence d'un fichier ou d'un répertoire.

Vérifier l'existence d'un répertoire et le créer s'il existe pas:
If (-not (Test-Path "C:\Users\Administrateur\dossier_de_test")) { New-Item -ItemType Directory -Name "C:\Users\Administrateur\dossier_de_test" }


Vérifier l'existence d'un fichier et le créer s'il existe pas:
If (-not (Test-Path "C:\Users\Administrateur\test.txt")) { New-Item -path "C:\Users\Administrateur\" -Name "test.txt" -ItemType file }


Indiquer si le fichier existe ou pas:
$filename = "C:\Users\Administrateur\test.txt"
If (Test-Path $filename) {Write-Output "Le fichier $filename existe!"} else {Write-Output "Le fichier $filename n'existe pas!"}




11- Get-ChildItem


La commande "Get-ChildItem" permet de lister des fichiers et des dossiers selon un ou plusieurs critères.
Il est possible de filtrer des éléments avec des paramètres supplémentaire comme Path, Include, Exclude ...

Listage de tous les fichiers et dossiers d'un dossier
Get-ChildItem C:\
Get-ChildItem -Path c:\Windows


Il est aussi possible de faire une recherche dans le registre:
Get-ChildItem –Path HKLM\Software


L'option "-Force" permet d'aaficher plus d'éléments (caché ...):
Get-ChildItem -Path C:\Windows -Force


L'option "-Recurse" pour afficher le contenu dans tous les sous-dossiers:
Get-ChildItem -Path C:\Windows -Force -Recurse


Avec l'option "-Include" on va afficher par exemple tous les fichiers qui ont l'extension ".log" et ".txt":
Get-ChildItem -Path C:\Windows -Force -Recurse -Include *.log,*.txt


Avec l'option "-Exclude" on va exclure tous les fichiers avec l'extension ".txt":
Get-ChildItem -Path C:\Windows -Force -Recurse -Include *.log -Exclude *.txt


Il est possible d'ajouter des arguments supplémentaire lors du listage avec l'aide de la commande "Where-Object" et grâce au fameux pipe "|".
Get-ChildItem -Path C:\Windows -Force -Recurse -Include *.log -Exclude *.txt | Where-Object {($_.LastWriteTime -gt "2014-11-03")}


Maintenant on va filtrer tous les fichiers qui fond plus de 100 Octets (0,1Ko) et moins de 200000 Octets (200Ko)
Get-ChildItem -Path C:\Windows -Force -Recurse -Include *.log -Exclude *.txt | Where-Object {($_.LastWriteTime -gt "2014-11-03") -and ($_.Length -ge 100) -and ($_.Length -le 200000)}




Par O.Cédric
Sur www.octetmalin.net

Article publié le:
22/01/2015 22:46





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.