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.