Dosyaları birden çok hedefe yapıştırın


0

Bu duruma çok sık giriyorum ancak bir çözüm bulamadım. Panoda birkaç farklı hedef klasöre yapıştırıp + değiştirmem gereken bir grup CSS dosyası var. Klasör yapım şuna benzer

.
├── folderA_11
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderB_11
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderC_11
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderD_22
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
├── folderE_33
|   └── CSS
|        └── file1.css
|        └── file2.css
|        └── file3.css
└── folderF_44
    └── CSS
         └── file1.css
         └── file2.css
         └── file3.css
etc...

Bir kalıp var: Kabı sona eren tüm CSS klasörlerine yapıştırmak istiyorum _11 ama diğerlerinden hiçbiri değil.

Hedef klasörlerin içeriği önemli değil, sadece onları yeni dosyalarla değiştirmem gerekiyor. Bu dosyaları aynı anda birden fazla hedefe yapıştırmanın basit bir yolu var mı? Aynı zamanda bir Automator akışı veya Terminal komutu da olabilir.


Dosyayı panodan "Pano İçeriğini Al" ve ardından "Seçili Bulucu Öğeleri Al" yoluyla alabilirsiniz. Ardından Find Finder Öğelerini Kopyala'yı kullanabilirsiniz. Klasörleri nasıl kullanacağınızdan henüz emin değilim, ama belki bu başlangıçta size yardımcı olur.
Kevin Grabher

@KevinGrabher Dosyaları kopyalamak sorun değil, zaten panoda onları var - tüm dosyaların kaynağı aynı. Benim sorunum özellikle çoklu hedefler, şu an için ayrı ayrı birden fazla klasör açmak zorunda kaldım ...
Luciano

Bir grup dosyayı birçok farklı klasöre yapıştırmak istiyorum, ancak en kötü durum senaryosu, dosyaları tek tek kopyalayabilirim (sadece birkaç dosya var). Asıl sorun benim klasör yapısına yayılmış birçok farklı klasöre yapıştırmak.
Luciano

@CJK dosya yapısını güncelledi, umarım şimdi daha açıktır.
Luciano

Ayrıca özellikle seçmek istediğim klasörlerle ilgili başka bir soru daha açtım apple.stackexchange.com/q/341354/307867
Luciano

Yanıtlar:


2

1 - Automator'ı açın ve yeni bir Servis oluşturun:

enter image description here


2 - Servisi Finder'da Dosya ve Klasörü alacak şekilde ayarlayın:

enter image description here


3 - "Finder Öğeleri İste" eylemini sürükleyin:

enter image description here


4 - "Run AppleScript" eylemini sürükleyin:

enter image description here


5 - Bu kodu yapıştırın:


on run {input}
    set numItems to count input
    set theFile to item (numItems) of input as text
    set numItems to numItems - 1
    repeat while numItems is not 0
        tell application "Finder"
            duplicate file theFile to folder (item (numItems) of input as text) with replacing
            set numItems to numItems - 1
            delay 0.1
        end tell
    end repeat
    display dialog "File copied to all folders" buttons {"Thanks"} giving up after 5
end run


6 - İş akışınızı kaydedin ve istediğiniz şekilde adlandırın:

enter image description here


7 - KULLANIM: İstediğiniz sayıda klasör seçin, sağ tıklayın, hizmetler, iş akışınızı bulun:

enter image description here

Kopyalamak istediğiniz dosyayı seçin (pencerenin ana pencerenin arkasına gizlenebildiğinden emin olun):

enter image description here

"Seç" i tıklayın ve kopyasını bekleyin.

enter image description here

Not: dosya var olanları aynı isimle değiştirecek.


1
Bence OP zaten panoda dosyalara sahip. Ask For Finder Items eyleme muhtemelen gerek yoktur. Sadece komut dosyası beynini dürtmek için, AppleScript'inize bir kez daha bakın ve nasıl geliştirebileceğinizi düşünün. Tüm satırların gerçekten gerekli olup olmadığını ve kodun daha düzenli olması için kodun bir kısmını yeniden yazıp yazamayacağınızı düşünün. Ayrıca, neden seçimin arkasında olduğunu da düşünün. Sistem olayları iletişim kutusunu görüntülemek ve iletişim kutusundaki etkilerini (varsa) göstermek için.
CJK

@CJK Geri bildiriminiz için teşekkür ederiz. Daha iyi bir çözüm sunduğuma inanıyorum, çünkü AFAIK, Automator için aynı anda 2 bilgi giremezsiniz. İş akışı NEDEN DOSYA VE NEREDE bilmeli. Diğer seçenek dosya ile başlar ve bence en kötü yaklaşım olan birkaç klasör ister. Her neyse, diğer fikirlere açıktır. "Sistem olayları" satırını kaldırıyorum.
Mateus Ribeiro

@CJK Dosyayı almak için panoyu kullanma fikrini test ettim, ancak görünüşe göre iş akışında bir hata oluşturarak yalnızca adı (ve tam yolu değil) döndürecektir. Finder Ürünleri İsteyin eylem tam yol sağlayacaktır.
Mateus Ribeiro

1
Bunun hakkında emin olmak ? Panodan bir dosyayı gerçek bir dosya nesnesi olarak almanın herhangi bir yolunu biliyor musunuz? Ayrıca, AppleScript'inizi kesebileceğim yaklaşık üç satır daha var. Bu arada, genel olarak iş akışınızın iyi ve güzel bir fikir olduğunu düşünüyorum. Sadece biraz daha düşünmeni sağlıyorum. Yine de seni + 1'leyeceğim.
CJK

İşte bir ipucu: gir Bulucu ve tuşuna basarak bir dosyayı panoya kopyalayın. Cmd-C. Sonra bu komutu Komut Dosyası Düzenleyicisi ve ne geri döndüğünü gör: get the clipboard as «class furl»
CJK

1

İstenildiği gibi, yorumlar başlığında tartıştığımız gibi uygulanabilir bir çözüm. Şu anda durum, panoda birden fazla hedef klasöre yapıştırılması gereken birden fazla dosyanızın olması. Bu hedef klasörlerin tümü denir "CSS" ve bir dizi ebeveyn klasörünün içinde bulunur (biten isimler "_11" ) toplu olarak seçebilirsiniz.

Bunu yaptıktan sonra, aşağıdakileri çalıştırabilirsiniz. Otomatikleştirici sağ tık bağlam menüsünden ya da altında seçerek hizmet Hizmetler (veya Mojave eşdeğeri); veya klavye kısayolu atayarak Sistem Tercihleri ve servisi bir kısayol tuşuna basarak tetikleyin.

Otomatikleştirici Söz konusu servis şuna benzer:

Automator service in macOS

Kullanılan AppleScript kodu Run AppleScript eylem aşağıdadır. AppleScript, panoda bulunan dosyaların listesini okur; izole eder "CSS" servise gönderilen seçilen üst klasörlerin her birinde bulunan alt klasörler "CSS" önceden mevcut değilse klasör oluşturulur); ve sonra dosyaları panodan içine kopyalar. "CSS" dizinleri.

Panoda dosya yoksa, bir bip sesi duyarsınız ve başka işlem yapılmaz.

use framework "AppKit"

property this : a reference to current application
property NSPasteboard : a reference to NSPasteboard of this
property NSURL : a reference to NSURL of this


on run {input, parameters}
    set pb to NSPasteboard's generalPasteboard()
    set fs to (pb's readObjectsForClasses:[NSURL] options:[]) as list

    using terms from scripting additions
        -- No files on clipboard, nothing to do
        if fs = {} then return beep
    end using terms from

    tell application "Finder" to repeat with f in the input
        set css to (a reference to the folder named "CSS" in folder f)
        if not (exists css) then make new folder at f with properties ¬
            {name:"CSS"}

        duplicate fs to css with replacing
    end repeat
end run

Güzel! AppKit vanilya AppleScript ile çalışır? Ek yazılım gerektirmez mi?
Mateus Ribeiro

Gerçekten, macOS 10.10 veya üstünü kullandığınız sürece, @MateusRibeiro
CJK
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.