Question
Décompresser fichiers et répertoires
- salento
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 13 ans 9 mois #11877
par salento
Décompresser fichiers et répertoires a été créé 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]
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 13 ans 9 mois #11878
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Décompresser fichiers et répertoires
Salut,
Salento9 écrit:
Ton script renvoit-il un msg d'erreur ? Quel comportement a-t-il ?
A l'avenir détaille le pb que tu rencontres, stp.
Salento9 écrit:
Qu'est-ce qui ne fonctionne pas ?voici mon script mais il ne fonctionne pas, pouvez svp m'aider a trouver la solution?
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.
- salento
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 13 ans 9 mois #11879
par salento
Réponse de salento sur le sujet Re:Décompresser fichiers et répertoires
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é.
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.
- salento
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 13 ans 9 mois #11880
par salento
Réponse de salento sur le sujet Re:Décompresser fichiers et répertoires
on dirais que \"-exclude\" 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.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 13 ans 9 mois #11881
par SiSMik
Réponse de SiSMik sur le sujet Re:Décompresser fichiers et répertoires
Out-File inscrit un objet dans le fichier. Donc il faudrait que créer un objet contenant les logs. Ou bien utiliser \"-append\" pour écrire à la suite dans le fichier.
Connexion ou Créer un compte pour participer à la conversation.
- salento
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 13 ans 9 mois #11882
par salento
Réponse de salento sur le sujet Re:Décompresser fichiers et répertoires
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 \"ie7updates\"«») {}
elseif($_.Name -contains \"ie8updates\"«») {}
elseif($_.Name -contains \"$NT\"«») {}
elseif($_.Name -contains \"$hf_mig$\"«») {}
else {
$_.fullname
if($_.attributes -ilike \"*Compressed*\"«») {
$Drive = Get-PSDrive $disk
$free = $drive.free/1024/1024/1024
$fpath = $_.fullname
if($free -gt 2) {
iex \"c:\windows\system32\compact.exe /u /S /F '$fpath'\"
out-file -filepath 'c:\temp\decompress.log' -inputobject $fpath -Append
}
}
}
}
}
}
[/code:1]
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 \"ie7updates\"«») {}
elseif($_.Name -contains \"ie8updates\"«») {}
elseif($_.Name -contains \"$NT\"«») {}
elseif($_.Name -contains \"$hf_mig$\"«») {}
else {
$_.fullname
if($_.attributes -ilike \"*Compressed*\"«») {
$Drive = Get-PSDrive $disk
$free = $drive.free/1024/1024/1024
$fpath = $_.fullname
if($free -gt 2) {
iex \"c:\windows\system32\compact.exe /u /S /F '$fpath'\"
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.093 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Décompresser fichiers et répertoires