ЧТО И ПОЧЕМУ Изнутри Finder я хочу иметь возможность скрывать любые файлы / папки, независимо от того, требуется ли sudo или нет, простым щелчком правой кнопкой мыши.

ДЕЙСТВИЯ, ПРИНЯТЫЕ УЖЕ: После кучи экспериментов я остановился на сервисе Automator, работающем с AppleScript

.
on run {input, parameters}
  set filehide1 to {}
  repeat with filehide2 in input
  set end of filehide1 to POSIX path of filehide2
  end repeat
  do shell script "chflags hidden " & quote & filehide1 & quote with administrator privileges
end run

ВЫДАЧА: Таким образом, скрипт работает отлично, НО в его нынешнем виде только тогда, когда выбирается один элемент за раз. Как настроить Automator / AppleScript для работы независимо от того, 1 файл у него или 500?

Ответы (1)

Вы не можете передать список AppleScript в оболочку. Вы должны выровнять список и разделить пути к файлам пробелами. Это можно сделать с помощью разделителей текстовых элементов .

Скрипт экранирует каждый путь к файлу в цикле повтора, поэтому кавычки в строке do shell script не нужны.

on run {input, parameters}
    set filehide1 to {}
    repeat with filehide2 in input
        set end of filehide1 to quoted form of POSIX path of filehide2
    end repeat
    set {TID, text item delimiters} to {text item delimiters, space}
    set fileList to filehide1 as text
    set text item delimiters to TID
    do shell script "chflags hidden " & fileList with administrator privileges
end run

2022 WebDevInsider