AppleScript: Bir AFP sürücüsüne indirin


1

Dosyaları bir AFP sürücüsüne indirmeye çalışıyorum ancak her zaman "Uyarı: dosya oluşturulamadı / Birimler / Ev / İndirilenler: Bir dizin var"

Ancak son komut çalışması para cezası uygulamasına "Finder" uygulamasını (POSIX dosyası olarak "/ Volumes / home / Downloads") açmasını söyleyin

set theFileURL to the clipboard
set {TID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "/"}
set theFile to text item -1 of theFileURL
set AppleScript's text item delimiters to TID

set theFilePath to "/Volumes/home/Downloads"
try
    do shell script "curl " & quoted form of theFileURL & " -o " & quoted form of POSIX path of theFilePath
    display dialog "The download is finished!" buttons {"OK"} default button 1 with icon note giving up after 5
on error theError
    display dialog "Error downloading the file:" & return & theFile & return & return & theError buttons {"OK"} default button 1 with icon 0 giving up after 5
end try


tell application "Finder" to open ("/Volumes/home/Downloads" as POSIX file)

Aynı tür komut dosyasında, kimsenin bir ipucu olması durumunda, torrentimi Synology Download Station'a da indirebilirim.

Yanıtlar:


1

curl Komut içinde do shell script komuta bozuk. Bu -o seçenek, yalnızca değişkenin içerdiği gibi bir yol değil, bir dosya adı veya tam nitelikli bir yol adı dosya adı bekler . Terminal türündeki man sayfasına bakın ve enter tuşuna basın ve ardından bulunduğu yere gidin: theFilePathcurlman curl-o, --output <file>Write output to <file> instead of stdout.

Yani do shell script komut gibi görünmelidir:

do shell script "curl " & quoted form of theFileURL & " -o " & quoted form of POSIX path of (theFilePath & "/" & theFile)

Eğer eklerseniz /sonunda (çizgi) değeri Eğer set için theFilePath değişken örneğin set theFilePath to "/Volumes/home/Downloads/"sen ortadan kaldırabilir & "/"gelen do shell script komutla sonra gibi görünecektir:

do shell script "curl " & quoted form of theFileURL & " -o " & quoted form of POSIX path of (theFilePath & theFile)

Ayrıca, belirlemiş beri theFilePathsize odasını kullanabilirler tell application "Finder" açıklamada , mesela:

tell application "Finder" to open theFilePath as POSIX file

Finder'ın dosyanın açılmasını tetiklemesini istiyorsanız ve nasıl ayarladığınıza bağlı olarak theFilePath(a ile veya a olmadan /) aşağıdakilerden birini uygun şekilde kullanın:

tell application "Finder" to open (theFilePath & "/" & theFile) as POSIX file
tell application "Finder" to open (theFilePath & theFile) as POSIX file

Aşağıda gösterilen AppleScript kodu theFilePath değişkenin hem formlarını hem de do shell script komutu , tell application "Finder" ifadenin iki sürümüyle birlikte satır başında --(çift çizgi) yorumlanmış bir setle birlikte içerir .

set theFileURL to the clipboard
set {TID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, "/"}
set theFile to text item -1 of theFileURL
set AppleScript's text item delimiters to TID

-- set theFilePath to "/Volumes/home/Downloads"
set theFilePath to "/Volumes/home/Downloads/"

try
    -- do shell script "curl " & quoted form of theFileURL & " -o " & quoted form of POSIX path of (theFilePath & "/" & theFile)

    do shell script "curl " & quoted form of theFileURL & " -o " & quoted form of POSIX path of (theFilePath & theFile)

    display dialog "The download is finished!" buttons {"OK"} default button 1 with icon note giving up after 5
on error theError
    display dialog "Error downloading the file:" & return & theFile & return & return & theError buttons {"OK"} default button 1 with icon 0 giving up after 5
end try

tell application "Finder" to open theFilePath as POSIX file
-- tell application "Finder" to open (theFilePath & "/" & theFile) as POSIX file
-- tell application "Finder" to open (theFilePath & theFile) as POSIX file

@KevinCork, kusura bakma, bazı parantez dışında kalan do shell script komutu , bu yüzden onları eklendi theFilePath & theFileve theFilePath & "/" & theFileörneğin (theFilePath & theFile)ve (theFilePath & "/" & theFile)eğer öyleyse theFile değişken dosya adı boşluk vardır düzgün halledilir.
user3439894

nedense sadece dosyanın ilk baytını indiriyor.
Kevin

@KevinCork, URL'yi sağlayabilir misiniz, böylece test edebilirim. Ayrıca, curldoğrudan bir Terminalde kullanıyorsanız , dosyanın sadece bir kısmını mı indiriyor?
user3439894

eminim, sadece rastgele bir URL ile test ediyorum get.videolan.org/vlc/2.2.1/macosx/vlc-2.2.1.dmg
Kevin

@KevinCork, Bu dosya benim için hem AppleScript'te curlde bombalıyor , hem de bir Atlantik'te kullanıyor , bu yüzden bir AppleScript sorunu değil. Diğer dosyalar benim için iyi çalışıyor.
user3439894 19:16
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.