Set-Attrib est une fonction qui associe à la fois la simplicité du codage en PS et la puissance de celui-ci:
Function Set-Attrib
{
param(
[string]$Path=".",
[string]$Filter="*",
[switch]$ReadOnly,
[switch]$System,
[switch]$Normal,
[switch]$Hidden,
[switch]$Archive,
[switch]$Recurse
)
$attr=@()
Switch($true)
{
$ReadOnly { $attr+='ReadOnly'}
$Archive { $attr+='Archive' }
$Hidden { $attr+='Hidden' }
$System { $attr+='System' }
$Normal { $attr+='Normal' }
}
gci -Path $Path -Fi $Filter -Recurse:$Recurse -Fo | `
Where { -not $_.PSIsContainer } | `
ForEach {
$_.PsBase.Attributes=[System.IO.FileAttributes]$attr
}
<#
.SYNOPSIS
Modifie les attributs des fichiers
.DESCRIPTION
Modifie les attributs des fichiers, les attributs supportés sont:
-ReadOnly: fichier en Lecture seul
-System : fichier système
-Hidden : fichier caché
-Archive : fichier archivé
.PARAMETER Path
Chemin du répertoire source
.PARAMETER Filter
Filtre sur les fichiers à traiter ou bien un nom d'un fichier
.PARAMETER Recurse
recherche recursive
.EXAMPLE
PS C:\> Set-Attrib -Path c: -Filter boot.ini -Normal
hôtter du fichier c:\boot.ini les attributs "Sytème" et "Caché"
.EXAMPLE
PS C:\> Set-Attrib -Filter *.inf -Recurse -ReadOnly -System
Modifie tous les attributs des fichiers *.iNF du répértoire courant et tous ses sous répértoie en fichiers "En lecture seul" et "Système"
.EXAMPLE
PS C:\> Set-Attrib -Hidden
Caché tous les fichiers du répertoire en cours
#>
}