Question Décompresser fichiers et répertoires

Plus d'informations
il y a 13 ans 9 mois #11877 par salento
Bonjour a tous,

Je suis a débutant dans le powershell, j'essaye de créer un script qui me permet de décompresser tous les fichiers et répertoires dans les disques c:\ d:\ & e:\ avec quelques exclusions et si les disques ont moins de 1GB stopper la décompression (tout objets avec attribut c)+ écrire dans un log le fichiers et répertoires qui on était décompressé. voici mon script mais il ne fonctionne pas, pouvez svp m'aider a trouver la solution?

[code:1]$errorActionpreference = \"silentlycontinue\"

$disks = get-psdrive -PSProvider filesystem

foreach($disk in $disks) {
if($disk.Name -ne 'A') {
get-childitem -path ($disk.root) -Recurse -exclude ('$hf_mig$', 'ie7updates', 'ie8updates', '$NT*') | % {
$Drive = Get-PSDrive $disk
$free = $drive.free/1024/1024/1024
if($free -gt 2) {
if($_.attributes -eq \"Compressed\" -OR $_.attributes -eq \"Directory, Compressed\" -OR $_.attributes -eq \"Archive, Compressed\" ) {
$fpath = $_.fullname
$fpath
iex \"c:\windows\system32\compact.exe /u /F '$fpath'\"
Out-file -filepath 'c:\temp\gind\decompress.log' -inputobject $fpath
}

}
}
}
}[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 9 mois #11878 par Laurent Dardenne
Salut,
Salento9 écrit:

voici mon script mais il ne fonctionne pas, pouvez svp m'aider a trouver la solution?

Qu'est-ce qui ne fonctionne pas ?
Ton script renvoit-il un msg d'erreur ? Quel comportement a-t-il ?
A l'avenir détaille le pb que tu rencontres, stp.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 9 mois #11879 par salento
Merci pour votre réponse, mes excuses.

pas de message d'erreur mais les exclusion ne fonctionnent pas (donc il décompresse tous)+ le ficher log il écrit seulement un ligne je pense le dernier ficher ou répertoire décompressé.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 9 mois #11880 par salento
on dirais que \&quot;-exclude\&quot; fonctionne seulement pour le fichier moi j'ai besoin d'exclure certains répertoires et leurs contenus.<br><br>Message édité par: Salento9, à: 25/05/12 10:02

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 9 mois #11881 par SiSMik
Out-File inscrit un objet dans le fichier. Donc il faudrait que créer un objet contenant les logs. Ou bien utiliser \&quot;-append\&quot; pour écrire à la suite dans le fichier.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 9 mois #11882 par salento
Merci pour votre aide,

j'ai donc finalement fait le script suivant qui fonctionne très bien sur un server2003, mais sur window7 les exclusion ne fonctionne pas, pouvez-vous m'aider svp?

[code:1]$disks = get-psdrive -PSProvider filesystem

foreach($disk in $disks) {
if($disk.Name -ne 'A') {
get-childitem -path ($disk.root) -Recurse | % {
if($_.Name -contains \&quot;ie7updates\&quot;«») {}
elseif($_.Name -contains \&quot;ie8updates\&quot;«») {}
elseif($_.Name -contains \&quot;$NT\&quot;«») {}
elseif($_.Name -contains \&quot;$hf_mig$\&quot;«») {}
else {
$_.fullname
if($_.attributes -ilike \&quot;*Compressed*\&quot;«») {
$Drive = Get-PSDrive $disk
$free = $drive.free/1024/1024/1024
$fpath = $_.fullname
if($free -gt 2) {
iex \&quot;c:\windows\system32\compact.exe /u /S /F '$fpath'\&quot;
out-file -filepath 'c:\temp\decompress.log' -inputobject $fpath -Append
}
}
}
}
}
}

[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.102 secondes
Propulsé par Kunena