Ok, imaginate esto: tenés una colección de cómics en formato .cbr
, pero querés pasar todo a .cbz
para leerlos más cómodo en ciertas apps. Acá entra este script. Te lo explico paso a paso, tranqui que no es tan quilombo como parece.
CONVERSOR DE CBR A CBZ
Este script agarra tus archivos .cbr
, los convierte a .cbz
y los deja bien prolijos. Ahí va lo que hace en cada paso:
1. Renombrar de .cbr
a .rar
Primero, convierte cada archivo .cbr
en .rar
. ¿Por qué? Porque un .cbr
es básicamente un .rar
disfrazado. Entonces, renombrando la extensión, ya estamos a un paso de descomprimir.
Get-ChildItem *.cbr | Rename-Item -NewName { $_.Name -ireplace [regex]::Escape('.cbr'), '.rar'}
2. Setear el Alias de 7-Zip
Este paso se asegura de que tenés el programa 7-Zip (el que usamos para comprimir y descomprimir). Si no lo tenés, tira un error. Después, crea un alias (sz
) para usar 7-Zip de manera más rápida en los siguientes pasos.
if (-not (test-path "$env:ProgramFiles\7-Zip\7z.exe")) {throw "$env:ProgramFiles\7-Zip\7z.exe needed"}
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
3. Descomprimir los .rar
Ahora que tenemos los .rar
, los descomprimimos. Acá, el alias sz
ejecuta 7-Zip, que extrae el contenido de cada .rar
.
Get-ChildItem *.rar | Foreach-object {sz e $_.Name -y -o*} -Verbose
4. Limpiar Archivos Innecesarios
Cuando descomprimís, a veces se generan archivos molestos (.DS_Store
, Thumbs.db
o .txt
). Esta parte borra todo eso para mantener las carpetas limpias.
Get-ChildItem -Recurse ._.DS_Store,*.txt,.*,Thumbs.db | Foreach-object { Remove-Item -Path $_.FullName -Force } -verbose
5. Eliminar Carpetas Vacías
A veces se quedan carpetas vacías después de limpiar. Este bloque se encarga de eso, chequeando cada carpeta y borrando las que ya no tienen nada adentro.
Get-ChildItem -Path $path -Recurse | Where-Object {(Get-ChildItem $_.FullName).Count -eq 0} | Foreach-object {Remove-item -Recurse -path $_.FullName -Force } -verbose
6. Comprimir Carpetas a .zip
Ya tenemos todo listo para armar los .cbz
. Primero, comprime las carpetas en .zip
usando 7-Zip.
Get-ChildItem -exclude *.rar | Foreach-object {sz a -tzip $_.Name $_.Name} -verbose
7. Renombrar los .zip
a .cbz
El script renombra cada archivo .zip
resultante a .cbz
. ¡Ya casi estamos!
Get-ChildItem *.zip | Rename-Item -NewName { $_.Name.Replace('.zip','.cbz') } -verbose
8. Limpiar las Carpetas Comprimidas y Archivos .rar
Para no dejar rastros, borra las carpetas originales que se comprimieron y los archivos .rar
que ya no sirven.
Get-ChildItem | Where-Object {$_.PSIsContainer -eq $True} | Foreach-object {Remove-item -Recurse -path $_.FullName -Force } -verbose
Get-ChildItem *.rar | Foreach-object { Remove-Item -Path $_.FullName } -verbose
Y listo, ¡tenés todos tus cómics en .cbz
, organizados y sin basura extra!