Daftar bersarang jalur POSIX yang tidak disengaja dalam Applescript


0

Saya mencoba menarik daftar file dengan ekstensi yang cocok dari direktori dengan subfolder, untuk digunakan dalam skrip terminal.

Daftar item harus dipisahkan oleh bilah vertikal "|" untuk menjalankan melalui aplikasi baris perintah, dan saya harus menghapus item pertama dalam daftar.

on run
    set savedDelimiters to AppleScript's text item delimiters
    set AppleScript's text item delimiters to "|"
    set sourceFolder to choose folder with prompt "Please select directory."
    tell application "System Events"
        set itemList to (POSIX path of every disk item in folders of sourceFolder whose name extension is "VOB" as string)
        log itemList as string
    end tell
    set AppleScript's text item delimiters to savedDelimiters
end run

Masalahnya adalah daftar yang dihasilkan sebenarnya daftar dalam daftar. Perhatikan kurung kurawal ganda dalam jawaban:

        get POSIX path of every disk item of every folder of alias "Macintosh HD:Users:USERNAME:Desktop:test2:" whose name extension = "VOB"
    --> {{"/Users/USERNAME/Desktop/test2/VIDEO_TS/VIDEO_TS.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_0.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_1.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_2.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_3.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_4.VOB"}}

Ketika saya mencoba bekerja dengan daftar, seperti:

log rest of itemList as string

Ini mengembalikan string kosong, karena daftar yang dibuat hanya memiliki satu item.

Mengira saya pasti kehilangan sesuatu yang jelas ... terima kasih telah melihatnya!


Jika Anda menggunakan set itemList to (POSIX path of every file of sourceFolder whose name extension is "VOB") as string dan pilih folder yang benar-benar berisi file .VOB, apakah itu melakukan apa yang Anda inginkan?
user3439894

Iya nih. Tapi saya lebih suka metode yang memungkinkan pengguna untuk dapat menambahkan direktori dengan subfolder yang berisi file yang dibutuhkan.
bashlock

Jawaban:


1

Mencoba:

set sourceFolderPath to POSIX path of (choose folder with prompt "Please select directory.")
if sourceFolderPath ends with "/" then set sourceFolderPath to text 1 thru -2 of sourceFolderPath
set findResultsList to paragraphs of (do shell script "find " & quoted form of sourceFolderPath & " -type f -flags nohidden -iname '*.VOB';")
set AppleScript's text item delimiters to {"|"}
set findResultsText to findResultsList as text
set AppleScript's text item delimiters to {""}
return findResultsText

0

Saya tahu Anda memiliki jawaban tetapi untuk tetap menggunakan Applescript murni, Anda dapat memodifikasi skrip Anda dengan cara ini:

on run
set savedDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "|"
set sourceFolder to choose folder with prompt "Please select directory."
tell application "System Events"
    set itemList to (POSIX path of every disk item in folders of sourceFolder whose name extension is "mp3" as string)
    set newItemList to {}
    repeat with n from 1 to count of itemList
        if (count of item n of itemList) > 0 then
            copy item n of itemList to the end of newItemList
        end if
    end repeat
    log newItemList as string
end tell
set AppleScript's text item delimiters to savedDelimiters
end run
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.