salut,

petite fonction pour changer les attributs des fichiers:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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    
 #>    
}