Come posso bloccare in batch più cartelle senza file _macosx?

2

Voglio comprimere più cartelle allo stesso tempo, in cui ogni cartella è il proprio file zip. Mi piacerebbe creare il file zip senza _macosx o altri file nascosti e, se possibile, avere l'estensione del file zip modificata in .cbz allo stesso tempo. In questo modo posso solo eseguire un processo su un'intera cartella e farli eseguire tutti rapidamente.

Sto usando Ubooquity per ospitare i miei fumetti e considera i file corrotti se il file _macosx o altri file nascosti si trovano nel file zip.

    
posta Ryan Boles 28.09.2017 - 23:14
fonte

1 risposta

1

Ecco un servizio di automazione che utilizza come singolo Esegui script di shell azione per gestire il processo.

  • In Automator , seleziona: File > Nuovo > servizio

  • Set: Il servizio riceve le cartelle selezionate in Finder

  • Aggiungi un Esegui script di shell azione

    • Impostazioni: Shell: / bin / bash e Passa l'input: come argomenti
    • Sostituisci tutto il codice predefinito con il codice mostra più sotto.
  • Salva il servizio Automator assegnandogli un nome appropriato, ad es. Crea archivio zip CBZ

Ora in Finder , seleziona le cartelle di destinazione che desideri un singolo archivio zip, con un'estensione .cbz per ogni cartella selezionata, quindi fai clic con il pulsante destro del mouse e seleziona Crea archivio zip CBZ , dalla sezione servizi del menu di scelta rapida .

Codice per Esegui script di shell Azione :

for d in "$@"; do
    if ! cd "$(dirname "$d")"; then exit; fi
    if ! d="$(basename "$d")"; then exit; fi
    if [[ ! -e "${d}.cbz" ]]; then
        if ! zip -r "${d}.cbz" "$d" -x \*.DS_Store \*.localized; then exit; fi
    fi
done

Note:

  • Come codificato, crea il file zip file filename.cbz solo se il file non esiste già.
  • Crea il file zip zip filename.cbz nella stessa cartella contenente le cartelle selezionate.
  • È scritto in modo che se si verifica un errore con uno dei passi compiuti, esce dallo script senza notifica. La gestione degli errori può essere modificata in base alle esigenze / richieste.
  • Per impostazione predefinita, zip non includerà la cartella __MACOSX e se trovi ci sono altri file nascosti oltre a .DS_Store e .localized , anche se in questo caso d'uso non devi eseguire l'accesso a quest'ultimo; puoi aggiungere ulteriori esclusioni al comando zip .
  • Così com'è, l'unica indicazione che lo script è terminato è quando l'icona dell'ingranaggio del servizio di Automator sulla barra dei menu è scomparsa. Alcune altre forme di notifica di completamento possono essere aggiunte allo script e o il flusso di lavoro del servizio Automator esteso con azioni aggiuntive appropriate, necessarie / richieste.
  • Così com'è, è senza fronzoli, tuttavia fa ciò che è programmato da fare.
risposta data 29.09.2017 - 05:31
fonte

Leggi altre domande sui tag