ayi_2 <p>Voici une méthode simple utilisant <a href="https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zipfile.extracttodirectory?view=netframework-4.5">ExtractToDirectory</a> de <a href="https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zipfile?view=netframework-4.5">System.IO.Compression.ZipFile</a> :</p> <pre><code class="lang-auto">Add-Type -AssemblyName System.IO.Compression.FileSystem function Unzip { param([string]$zipfile, [string]$outpath) [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath) } Unzip "C:\a.zip" "C:\a" </code></pre> <p>Notez que si le dossier cible n’existe pas, ExtractToDirectory le créera. Autres mises en garde :</p> <ul> <li> <p>Les fichiers existants ne seront pas écrasés et déclencheront plutôt une IOException.</p> </li> <li> <p>Cette méthode nécessite au minimum .NET Framework 4.5, disponible pour Windows Vista et versions ultérieures.</p> </li> <li> <p>Les chemins relatifs ne sont pas résolus en fonction du répertoire de travail actuel, voir <a href="https://stackoverflow.com/questions/11246068/why-dont-net-objects-in-powershell-use-the-current-directory">Why don’t .NET objects in PowerShell use the current directory?</a></p> </li> </ul> <p>Voir aussi :</p> <ul> <li><a href="https://learn.microsoft.com/en-us/dotnet/standard/io/how-to-compress-and-extract-files">How to Compress and Extract files</a> (Microsoft Docs)</li> </ul>