AppleScript kodumu dosyaları taşımak için nasıl alabilirim?


3

Daha önce başarıyla dosya uzantısına göre dosyaları düzenlemek için Automator kullandıktan sonra, Automator "Filtre Bulucu Öğeleri Filtrele" eylemi için bir değişken ayarlamama izin vermediğinden, parametreleri manuel olarak değiştirmek zorunda kalmamı sağlayacak bir AppleScript uygulaması oluşturmaya karar verdim.

Ancak, nedense veya başka bir nedenle, AppleScript kodum aslında .wad dosyalarını taşımamaya karar veriyor. Jpg dosyaları ile test ettim ve mükemmel çalışıyor. Onu aynı .epub dosyalarıyla test ettim. Ancak .wad dosyalarını tespit edebilecek gibi görünmüyor.

Aşağıda benim kodum. Klasörü, ilk iletişim kutusuna koyduğum adla doğru konumda oluşturur, ancak .wad dosyalarını yeni konuma taşımaz. Sonunda boş bir klasör yaratıyorum. Sonuç AppleScript, komut dosyası sonlandırıldığında {} olduğunda bana veriyor.

display dialog "Set folder name" default answer ""
set foldername to (text returned of result)

display dialog "Set file type" default answer ""
set filetype to (text returned of result)

set newfolder to ((path to downloads folder as text) & foldername as text)

tell application "Finder"

    if not (exists folder ((path to downloads folder as text) & foldername as text)) then
        make new folder at (path to downloads folder) with properties {name:foldername}
    end if

    move (every file of folder (choose folder) whose name extension is filetype) to folder newfolder

end tell

.wadDosyalar tek tek dosyalar mı, paketler mi yoksa klasörler mi? Bir every file of folder … whose name extension is …şeyle eşleşmesini sağlamak için sonucunu incelemeyi denediniz mi?
Graham Miln

.Wad dosyaları tekil dosyalardır, evet. Onlar Wii Homebrew yazılım dosyaları. .Wad dosyaları dışındaki herhangi bir dosya türü için doğru sonuçları alıyorum. Bu betiği .jpg dosyaları, .epub dosyaları, .zip dosyaları ve .7z dosyaları ile test ettim ve hepsi iyi çalışıyor. Komut dosyası, örneğin .jpg olarak değiştirilmiş uzantısı olan .wad dosyalarını bile algılar.
RhysMorgan

Eğlenceli, onları Doom oyunu ile ilişkilendiririm. Taşınmak display dialogyerine bulunan dosya listesini denediniz mi? Listede eşleşme var mı?
Graham Miln

Yeni bir klasöre taşımadan önce (iletişim adı uzantısı filetip olan her klasör dosyası (klasör seç)), yeni klasöre taşınmadan önce (dosya adı uzantısı filet olan her klasör dosyası) yer değiştirdim ve taşıma satırını yorumladım. AppleScript sonucu verdi "hata" Finder bir hata aldı: {} türündeki dizeye {} listesi yapılamıyor. "Sayı -1700 {} dizesinden". Klasör içeriğini listeleme kodu yanlış mı?
RhysMorgan

Yanıtlar:


1

Görünen o ki, aşağıdaki satır boş bir liste döndürüyor:

every file of folder (choose folder) whose name extension is filetype

Bir deneme olarak, farklı bir sonek eşleme yaklaşımı deneyin:

every file of folder (choose folder) whose name ends with ".wad"

Finder'da .waddosyaların aslında tam adlarını gösterdiğinden emin olun . Finder'da bir dosyadaki Bilgi Al ile bunu yapın wad. Gerçek dosya sonekinin gizlenmesi ve eşleştirilmemesi olası değildir.


Bu aslında .wad dosyalarını taşıdı! Dosya uzantısı kesinlikle .wad olmasına rağmen, dosya uzantısı wads tespit değildi gibi görünüyor. Bu kod satırını önerinizle birlikte yazdım, değişkeni ekledim ve işe yarıyor! Çok teşekkür ederim!
RhysMorgan
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.