AppleScript / Automator per ordinare i file in base al nome del file

1

Voglio selezionare una cartella di filmati QuickTime e copiarne ciascuna in sottocartelle separate a seconda del nome del file (copiando non in movimento).

Ho una cartella che voglio contenere sottocartelle chiamate XA e XB, ma voglio solo che vengano copiate attraverso le versioni h264.

I nomi dei file di esempio sono i seguenti:

XA0000_v001_h264.mov
XA0000_v001.mov
XB0010_v002_h264.mov
XB0010_v002.mov

Quale sarebbe un modo efficace per codificarlo?

    
posta James Yeoman 22.07.2018 - 21:38
fonte

2 risposte

2

Chiedo scusa in anticipo se volessi solo uno script. Avrei commentato, ma io sono 5 rep corto. Questo non è un applescript / automator, ma potrebbe comunque aiutare.

Puoi usare Trova qualsiasi file . Descrizione del sito web:

Find Any File is a program for Apple's Mac OS X that lets you search for files on your disks.

  • Contrary to Spotlight, it does not use a database but instead uses the file system driver's fast search operations, where available. This lets you search for file properties such as name, dates, size, etc., but not for file content (that's what Spotlight is best at!) — unless you want to find plain text only).
  • Find Any File can find files that Spotlight doesn't, e.g. those inside bundles and packages and in inside folders that are usually excluded from Spotlight search.
  • Finally, it is quite fast. A search only takes a few seconds on an internal hard disk or SSD. Try for yourself!

Fondamentalmente, è come " Tutto " per mac. Ma quello che potresti fare è cercare qualsiasi file che finisca con "_h264.mov" all'interno della cartella (qualunque sia la cartella che desideri. Se vuoi automatizzare, suppongo che potresti fare uno script GUI per trovare qualsiasi file, ma potresti trova un'altra soluzione.

Immagine di esempio:

    
risposta data 22.07.2018 - 22:41
fonte
1

Questo è un AppleScript che puoi usare. È possibile salvarlo come un'applicazione, quindi rilasciare la cartella contenente il file o eseguire lo script e selezionare tale cartella quando richiesto. Copia i file con "h264" nel loro nome nella sottocartella XA e sposta i file senza "h264" nel loro nome nella sottocartella XB. I file originali con "h264" nel loro nome non vengono spostati, quindi ne avrai due, uno nella cartella originale e uno nella cartella XA della sottoscheda.

property done_foldername : "Sub Folder XA"
property originals_foldername : "Sub Folder XB"
property extension_list : {"mov"}

on open these_items
    my build_distribution(these_items's item 1)
end open

on build_distribution(this_item)
    set this_folder to this_item as string
    set done_FolderPath to this_folder & done_foldername
    set originals_FolderPath to this_folder & originals_foldername
    tell application "Finder"
        if not (exists folder done_FolderPath) then
            make new folder at this_folder with properties {name:done_foldername}
        end if
        if not (exists folder originals_FolderPath) then
            make new folder at this_folder with properties {name:originals_foldername}
            set current view of container window of folder this_folder to list view
        end if
        set the originals_folder to originals_FolderPath as alias
        set these_items to (every file of entire contents of folder this_folder as list)
    end tell
    try
        repeat with i from 1 to number of items in these_items
            set this_item to (item i of these_items) as alias
            set the item_info to the info for this_item
            if (alias of the item_info is false and the name extension of the item_info is in the extension_list) then
                if the displayed name of item_info contains "h264" then
                    set copy_Me to "1"
                else
                    set copy_Me to "0"
                end if
                try
                    tell application "Finder"
                        if copy_Me = "1" then
                            duplicate this_item to folder done_FolderPath
                        else
                            move this_item to folder originals_folder with replacing
                        end if
                    end tell
                on error the error_message number the error_number
                    display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
                end try

            end if
        end repeat
    on error error_message number error_number
        if the error_number is not -128 then
            tell application "Finder"
                activate
                display dialog error_message buttons {"Cancel"} default button 1 giving up after 120
            end tell
        end if
    end try
end build_distribution

on run
    set this_item to (choose folder)
    my build_distribution(this_item)
end run
    
risposta data 28.07.2018 - 06:06
fonte

Leggi altre domande sui tag