Dosyaları dosya adına göre sıralamak için AppleScript / Automator


1

Bir QuickTime filmi dizisi seçmek ve her birini dosya adına bağlı olarak (her biri hareket etmeyerek) ayrı alt klasörlere kopyalamak istiyorum.

XA ve XB adında alt klasörler içermek istediğim bir klasör var, ancak yalnızca h264 sürümlerinde kopyalamalarını istiyorum.

Örnek dosya adları aşağıdaki gibidir:

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

Bunu kodlamanın etkin bir yolu ne olabilir?


1
Sadece dizini değiştirerek Terminal'den yaparım. XA ve aşağıdakileri kullanarak bileşik komut , nerede ../XB/ giden yol XB Klasör: for f in *_h264.mov; do cp "$f" ../XB/; done
user3439894

Yanıtlar:


2

Sadece bir senaryo istiyorsan, şimdiden özür dilerim. Yorum yapardım, ama kısa 5 asistanım. Bu bir el yazısı / otomatikleştirici değildir, ancak yine de yardımcı olabilir.

Kullanabilirsiniz Herhangi bir dosyayı bul . Web sitesi açıklaması:

Herhangi Bir Dosya Bul, Apple Mac OS X için arama yapmanızı sağlayan bir programdır   disklerinizdeki dosyalar için.

  • Spotlight'ın aksine, bir veritabanı kullanmaz, bunun yerine, varsa, dosya sistemi sürücüsünün hızlı arama işlemlerini kullanır. Bu, ad, tarih, boyut vb. Gibi dosya özelliklerini aramanıza izin verir ancak dosya içeriği için arama yapmanıza izin vermez (Spotlight'ın en iyi olduğu şey budur!) - Yalnızca düz metin bulmak istemiyorsanız).
  • Herhangi Bir Dosya Bul, Spotlight'ın bulmadığı dosyaları bulabilir, örn. paketler ve paketler içindeki ve genellikle   Spotlight arama dışında bırakıldı.
  • Son olarak, oldukça hızlı. Arama, dahili bir sabit diskte veya SSD'de yalnızca birkaç saniye sürer. Kendiniz deneyin

Temel olarak, "gibi her şey "mac için. Ancak yapabileceğiniz şey, klasörün içinde" _h264.mov "ile biten herhangi bir dosyayı aramaktır (nasıl bir klasör istersen. Otomatikleştirmek istiyorsanız, herhangi bir dosyayı bulmak için bir GUI betiği yapabilirdiniz. , ancak başka bir çözüm bulabilirsiniz.

Örnek resim: enter image description here


+1 İyi Katı cevabı. Oh ve AskDifferent'e Hoşgeldiniz :)
JBis

1

Bu kullanabileceğiniz bir AppleScript. Bir uygulama olarak kaydedebilir, ardından dosyanızı içeren klasörü bırakabilir veya komut dosyasını çalıştırabilir ve istendiğinde bu klasörü seçebilirsiniz. Adlarında "h264" olan dosyaları Alt Klasör XA'ya kopyalar ve adlarında "h264" olmayan dosyaları Alt Klasör XB'ye taşır. Adlarında "h264" olan orijinal dosyalar taşınmadığından, her biri orijinal klasörde, diğeri de Alt Klasör XA klasöründe olacak.

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.