Bir bilgisayardaki çeşitli programlar ve hizmetler size kolaylık sağlamak içindir, ancak sistemdeki çeşitli araçları ve programları kullanarak tekrarlayan işlemler yapmanız gerekebilir. Bu durumlarda, komut dosyası araçları kullanımı son derece yararlı olabilir. Programlamanın aksine, komut dosyası, bir dizi geçerli araç ve yardımcı programı aldığınızda ve komutlarla etkileşimlerini otomatikleştirdiğinizde gerçekleşir. Örneğin, Javascript ile bir tarayıcıya HTML içeriğini oluşturma şeklini değiştirmesini söyleyebilir veya Automator ile Finder'a dosyaları belirli bir şekilde düzenlemesini söyleyebilirsiniz.
Son zamanlarda CNET'teki bir meslektaşım bana, Mac'in harici bir sürücünün varlığına bağlı olarak Safari'nin indirme klasörünü otomatik olarak değiştirmesini istedi. Buradaki fikir, Safari’nin varsayılan İndirilenler dizinine indirilmiş dosyaları yerleştirmesi, ancak belirli bir harici sürücüyü ("İndirilenler" adı verilen bir thumbdrive gibi) taktığınızda, sistemin Safari’nin indirme dizinini otomatik olarak harici sürücüye değiştirmesini sağlamak olacaktır., manuel olarak değiştirmeye devam etmek hantal olabilir.
Ne yazık ki Safari'nin kendisi bunu yapabilme yeteneğine sahip değil, ancak OS X'in bunun için kullanılabilecek kaynakları ve Safari uygulamasını ve bazı OS X servislerini yönetmek için AppleScript kullanarak komut dosyası kullanması, kullanmayan bazı eylemleri gerçekleştirmek için Shell komut dosyası çalıştırması uygulama arayüzü ve sadece bir sürücü takıldığında komut dosyalarını çalıştırmak için sistem başlatıcısı.
Başlangıçta bu problemi düşünürken, çözüm oldukça basit görünebilir ve aşağıdaki senaryo iyi bir cevap gibi görünebilir:
- İndirilenler klasörünü "NAME" ile belirtilen konuma değiştirmek için "defaultults com.apple.Safari DownloadFolder NAME" komutunu çalıştırmak için bir komut dosyası ayarlayın.
- Bu komut dosyasını yalnızca belirli bir sürücü takılıyken sistem başlatıcısını kullanarak çalıştırın.
- Sürücü artık takılı olmadığında, farklı bir konuma işaret eden benzer bir komutla bunu tekrarlayın.
Bu temel yaklaşım makul görünse de, birkaç nedenden dolayı işe yaramayacaktır. Birincisi, Safari bir kez çalıştıktan sonra tercihlerini değiştirmenin tek yolu programın kendisidir. Program yüklendiğinde, tercihleri RAM'e okur ve orada ayarlarını yönetir, bu nedenle tercih dosyasını TextEdit veya "defaultults" komutunu kullanarak düzenlerseniz yukarıda belirtilenleri etkilemez. Ayrıca, Safari, çıkarken tercihlerini diske geri yazar ve bu da değiştirilen ayarların üzerine yazar.
Ek olarak, bu yaklaşım, sistemin belirli bir sürücünün varlığını izleyecek ve mevcut sürücü olduğunda komut dosyasını tetikleyecek mevcut kaynaklara sahip olduğunu varsayar, bu durum böyle değildir. Sistem, sürücülerin takılı olup olmadığını izleyebilir, ancak sürücünün ne zaman takıldığını kontrol etmek için bir sürücü adı belirlemek için ek komut dosyası gerekebilir.
Son olarak, dikkate alınması gereken birkaç nüans vardır. Örneğin, Safari'nin çalıştırma sırasındaki tercihlerini değiştirmek için kullanılması gerektiğinden, bunu yapmak onu ilk uygulama olmaya zorlayacaktır; komut dosyası ilk önce ilk uygulamayı algılamayınca ve Safari’de yapılan değişiklikler geri yüklenirse tamamlandı Ek olarak, herhangi bir rasgele sürücü eklendiğinde betiğin aktif programı çalıştırıp değiştirmesini istemezsiniz.
Bunlar nedeniyle, betiğin aşağıdaki beş düşünceyi içermesi gerekir:
- Yalnızca yeni bir sürücü takıldığında başlat
- Yalnızca "İndirilenler" (veya istediğiniz herhangi bir adı) adlı bir sürücü takılıysa ayarları değiştirin
- Safari'nin şu anda başlatılıp başlatılmadığına ilişkin ayarları değiştirme yaklaşımında şartlı olun
- Yalnızca istediğiniz yeni bir indirme konumu varsa ayarları değiştirin
- Komut dosyasının Safari'ye geçmesi gerekiyorsa, en önde gelen uygulamayı geri yükleme olanağına sahip olun
Bu seçenekleri uygulamak için iki komut dosyası oluşturulması gerekir. Birincisi, yeni bir sürücünün takılıp takılmadığını görmek için sistemin sürücü montaj noktalarını izlemek için kullanılacak sistem başlatıcısı "launchd" içindir. Öyleyse, sürücü adını kontrol edecek komut dosyasını başlatacak, Safari'nin çalışıp çalışmadığını kontrol edecek ve ardından Safari'nin ayarlarını yalnızca harici sürücüyü seçmekten farklıysa ancak yoksa, varsayılan Yüklemeler klasörünü kullanacaksa değiştirecektir. .
Script 1: Sürücüleri izlemek için LaunchAgent
Yapılması gereken ilk komut dosyası, Başlat Aracısı adı verilen sistem başlatıcısı içindir. Oluşturmak için Terminal'i açın ve aşağıdaki komutu yazın (basitlik için kopyalayıp yapıştırın):
~ / Library / LaunchAgents / local.ChangeSafariDownload.plist öğesine dokunun
Bu yapıldığında, aşağıdaki komutu çalıştırarak TextEdit'te açın:
open -e ~ / Library / LaunchAgents / local.ChangeSafariDownload.plist
Artık boş bir TextEdit belgeniz açık olmalıdır, bu nedenle aşağıdaki metni kopyalayın ve belgeyi kaydedin, ancak şimdilik açık tutun. Komut dosyasının konumunu değiştirmek için "FILEPATH" bölümünü değiştirmeniz gerekir:
Yerel etiketleyinChangeSafariDownloads QueueDirectories WatchPaths / Volumes Programı / usr / bin / osascript ProgramArguments osascript FILEPATH
Giriş yaptığınızda, bu komut dosyası sistem başlatıcısı işlemine yüklenir ve Safari'nin tercihlerini düzenlemek için ana komut dosyasını çalıştırmak için şartlar ve talimatlar verir. Bu durumda, başlatıcıya, bu dizinde herhangi bir değişiklik olup olmadığını görmek için dizini / Birimleri izlemesi söylenecektir. Bu, dosya sistemlerinin monte edildiği yer olduğundan, ne zaman bir sürücü takılır veya sistemden çıkarılırsa, ana komut dosyasının çalışması tetiklenir.
Script 2: Ayarları değiştirmek için AppleScript
İkinci komut dosyası, sürücü adlarının kontrol edilmesi, Safari'nin açık olup olmadığı ve tercihlerin değiştirilmesi için diğer koşullar dahil olmak üzere tüm eylemleri gerçekleştirecek ana karakterdir. Oluşturmak için / Applications / Utilities / klasörüne gidin ve AppleScript Editor programını açın. Boş bir editör penceresi açılacak ve aşağıdaki betiği kopyalayıp yapıştığında:
- Burada indirme klasörü olarak kullanılacak alternatif sürücü adını ayarlayın.
dlFolder işlevini convertHome olarak ayarlayın ("/ Volumes / Downloads")
uygulama "Bulucu" söyle
eğer varsa [ POSIX dosyası dlFolder]
- Hiçbir şey yapmayın ve klasörü kullanın
Başka
- dlFolder'ı varsayılan giriş dizinine ayarlayın
dlFolder işlevini (POSIX yolu ( metin olarak giriş klasörünün yolu )) & "İndirilenler" olarak ayarlayın.
eğer bitiyorsa
son söyle
- safari pist'ten güncel yolu al
currentpath değerini convertHome olarak ayarlayın ("defaultults com.apple.Safari DownloadsPath dosyasını okuyun")
- sadece geçerli ayar giriş yolu ile eşleşmezse yolu değiştir (değiştirilecek bir şey varsa)
eğer ( metin olarak currentpath) , ( metin olarak dlFolder) ' a eşit değilse
- Safari çalışıyorsa, ayarları Safari'nin tercihleriyle değiştirin
appIsRunning ("Safari") ise
- komut dosyası tamamlandığında geri yüklenecek en öndeki uygulamayı belirlemek
frontApp'ı, en öndeki uygulama yoluna metin olarak ayarla
- indirme klasörü yolunu panoya kopyala
panoyu dlFolder olarak metin olarak ayarla
"Safari" uygulamasını etkinleştir
"Safari" uygulama sürecini anlatmak
- tercihleri açın veya öne getirin (pencere 1)
{command down} ile tuşa basılması ", "
gecikme 1 - vitrindeki duraklamalar bir hataya neden olabilir, bu yüzden bir saniye bekleriz
- Genel sekmesine değiştirin
pencerenin 1 araç çubuğunun "Genel" düğmesine tıklayın 1
- İndirme konumunu Diğer olarak değiştir
"Genel" penceresinin 1. grubunun 1. grubundaki "İndirilen dosyaları şuna kaydet:"
tık
menü 1 - "Diğer ..." menü öğelerini tıklayın - üç nokta üç nokta değil üç nokta
son söyle
- "Klasöre git" iletişim kutusunu açın
{shift down, command down} ile "g" tuşlarına basın
- Klasör yolunu konum alanına yapıştırın
"Klasöre Git" penceresini söyle
{command down} ile "v" tuşlarına basılması
tuşa basma dönüşü
son söyle
"Genel" penceresinin 1. sayfasının "Seç" düğmesine tıklayın
- tercihleri kapat
{command down} ile "w" tuşlarına basılması
son söyle
- iş tamamlandıktan sonra en öndeki uygulamayı geri yükle
uygulama frontApp'ı etkinleştirmesini söyle
Başka
- Safari çalışmıyorsa, tercihleri değiştirmek için defaults komutunu kullanın.
kabuk betiğini yapın ("varsayılanlar com.apple.Safari DownloadsPath yazın" ve dlFolder)
eğer bitiyorsa
eğer bitiyorsa
- Ana yol referanslarını tam yollara dönüştürme işlevi
convertHome üzerinde (currentpath)
currentpath "~ /" içeriyorsa
oldDelimiter'i AppleScript'in metin öğesi sınırlayıcılarına ayarla
AppleScript'in metin öğesi sınırlayıcılarını {"~ /"} olarak ayarlayın
textPath'i currentpath'in her metin öğesine ayarlayın
AppleScript'in metin öğesi sınırlayıcılarını oldDelimiter olarak ayarla
currentpath öğesini , textPath içindeki POSIX yoluna ( metin olarak giriş klasörüne giden yol ) ve madde 2'ye ayarlayın
eğer bitiyorsa
akım yolunu döndür
dönüştürmek
- "appName" uygulamasının çalışıp çalışmadığını kontrol etme işlevi (bu durumda, Safari için kullanılır)
appIsRunning üzerinde (appName)
"Sistem Olayları" uygulamasına söyle ( işlemlerin adı) appName içeriyor
appIsRunning'ı sonlandır
Komut dosyasının metni başlangıçta mor renkte olacaktır, ancak Derleme araç çubuğu düğmesini tıkladığınızda veya komut dosyasını kaydettiğinizde, burada gördüğünüze benzer şekilde renklendirilir. Komut dosyasını "ChangeDownloads" gibi bir adla istediğiniz bir yere kaydedin (Belgeler dizininizdeki veya "Kullanıcı kitaplığınızın içindeki" Komut Dosyaları "klasörüne yerleştirebilirsiniz) ve AppleScript düzenleyicisini kapatın.
Şimdi yeni bir Terminal penceresi açın ve yeni oluşturulan komut dosyasını sürükleyin. Bunu yaptığınızda, betiğin tam dosya yolu pencereye girecek, "/Users/username/Documents/ChangeDownloads.scpt." Fareyi kullanarak tüm dosya yolunu seçin, panoya kopyalamak için Command-C tuşlarına basın ve TextEdit'te Komut Dosyası 1'e geri dönün ve "FILEPATH" girişini kopyalanan metninizle değiştirin. Sonra dokümanı kaydedip kapatın.
Bu noktada scriptlerin hepsi ayarlandı. Başlatma aracısı komut dosyasını (Komut Dosyası 1) yüklemek için oturumu kapatıp tekrar oturum açın ve şimdi "İndirilenler" adlı bir sürücüyü taktığınızda, Safari ayarları otomatik olarak değiştirilir, böylece bu sürücüyü indirme klasörü olarak kullanır. Daha sonra sürücünün bağlantısını keserseniz ayar geri alınacaktır. Aynı şey, "İndirilenler" olarak adlandırılan bir sürücüyü yeniden adlandırırsanız veya adını "İndirilenler" den başka bir şeye değiştirirseniz de olur.
Bu betiğin çalışmasına rağmen, Safari 5.1 çalıştıran yalnızca OS X 10.6 "Snow Leopard" ve OS X 10.7 "Lion" üzerinde test edildiğini unutmayın. ancak, en az Safari 5.0 çalıştıran diğer sistem yapılandırmalarında gayet iyi çalışması gerekir. Ana gereksinimler, komut dosyası Safari'nin tercihlerini programın içinden yönetirken, çeşitli menüleri açmak ve ekrandaki çeşitli düğmeleri tıklatmak için düğme dizinlerini kullanır. Apple, gelecekte Safari'de tercihler organizasyonunu değiştirirse, betiğin bu kısmı, uygun düğmelere tekrar işaret edecek şekilde düzenlenene kadar çalışmaz. Ancak, şu an için uğraşmamız gereken bir sınırlama. Lion'da bunun için bir geçici çözüm, Safari'den çıkmak, tercihlerde değişiklik yapmak ve ardından arayüzü yeniden programlamak yerine programı yeniden başlatmak için Apple'ın Devam etme özelliğinden bir komut dosyasında yararlanmaktır.
Son olarak, artık bu betiği istemediğinize karar verirseniz, AppleScript dosyasını silerek ve ardından LaunchAgent dosyasını el ile kaldırarak veya Terminal'de aşağıdaki komutu çalıştırarak kaldırabilirsiniz. Bu yapıldığında, sadece çıkış yapıp tekrar giriş yapın ve ilk kareye dönersiniz:
rm ~ / Library / LaunchAgents / local.ChangeSafariDownload.plist
Yorumunuzu Bırakın