44 lines
2.1 KiB
HTML
44 lines
2.1 KiB
HTML
<!-- 25 -->
|
|
<p>
|
|
Esta función la hice por que a veces tengo que analizar archivos del INEGI y al momento de descargar los datos
|
|
abiertos vienen comprimidos en multiples archivos zip y como era una
|
|
tarea repetitiva ví que podía automatizarla de tal forma que pueda descomprimir todos los archivos zip en un
|
|
directorio, para usarla es muy sencillo, solo debes de moverte
|
|
en la terminal hasta el directorio donde están todos tus archivos zip y luego hacer el llamado de la función,
|
|
ejemplo: <br><br>
|
|
Imaginemos que tenemos una carpeta con 32 archivos zip que queremos descomprimir y en la terminal ya estoy ubicado
|
|
en ese directorio, solo debo hacer el llamado de la función unzip:
|
|
</p>
|
|
<div class="img zoomable">
|
|
<img src="/static/source_imgs/powershell/pst_4/1.png" alt="" style="height: 350px; width: auto;">
|
|
</div>
|
|
<p>
|
|
La salida del comando nos informa de forma iterativa el nombre del archivo que se va descomprimiendo y el número de
|
|
archivo del total de archivos a descomprimir, al final nos informa que ya se han descomprimido los archivos.
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode">
|
|
function unzip {
|
|
# https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.archive/compress-archive?view=powershell-7.2
|
|
$curP = $pwd
|
|
$Zips = Get-ChildItem -path $curP -filter "*.zip"
|
|
$Destination = $curP
|
|
$numFiles = (Get-ChildItem -Filter "*.zip" | Measure-Object).Count
|
|
if ($numFiles -eq 0) {
|
|
Write-Warning "No hay archivos zips para ser descomprimidos"
|
|
}
|
|
elseif ($numFiles -eq 1) {
|
|
Write-Host "Descomprimiendo: " $Zips.name -ForegroundColor Yellow
|
|
Expand-Archive $Zips.name -Force
|
|
Write-Host "Proceso finalizado " -ForegroundColor Green
|
|
}
|
|
elseif ($numFiles -gt 1) {
|
|
foreach ($_ in $Zips) {
|
|
$nRound = [math]::Round(((($Zips.IndexOf($_) + 1) / $numFiles) * 100), 2)
|
|
Write-Host "" ($Zips.IndexOf($_) + 1) " de " $numFiles " | " $nRound "% | Descomprimiendo: " $_.name -ForegroundColor Yellow
|
|
Expand-Archive $_ -Force
|
|
}
|
|
Write-Host "Proceso de descompresion finalizado exitosamente" -ForegroundColor Green
|
|
}
|
|
}
|
|
</code></pre> |