4

как создать элемент автомата Finder, который отображается в «Службах» для создания нового текстового файла в папке с файлами? Я использую TextMate, поэтому лучше, если решение не зависит от редактора (вместо использования TextEdit).

6 ответов6

2

Это не действие automator, но оно решило проблему создания нового файла, где я хотел: http://ignorethecode.net/blog/2009/05/31/creating-new-documents/. Посмотрите на решение под названием "Еще лучшее решение" (внизу страницы).

1

Как я это делаю: я создаю фиктивный текстовый файл и сохраняю его в какой-то папке в моих документах (это используется в качестве шаблона при каждом запуске службы). Затем я создаю рабочий процесс (сервис) следующим образом:

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

Чтобы открыть вновь созданный файл, вы можете добавить действие "Открыть элементы Finder", в котором вы, очевидно, выбрали бы TextMate, а не TextEdit. Чтобы сделать его независимым от редактора, вы можете указать, чтобы он открывался с приложением по умолчанию, и он сделает это.

Если для вас очень важен запрос имени во время выполнения, вы можете добавить действие get text и назначить его второй переменной, а затем добавить действие переименования после действия copy и сказать заменить текст, заменяя имя файла вашего шаблона. с текстовой переменной. По умолчанию вы не можете использовать текстовые переменные так, как я описал, но в следующем посте есть обходной путь. Я знаю, что это работает под 10.6, и может или не может работать под более ранней версией OSX.

смотрите здесь для получения инструкций

1

Это должно работать:

do shell script "echo '[text for the text file]' > [path to folder & file].txt"

Если вы просто хотите пустой текстовый файл, попробуйте это:

do shell script " > [path to folder and file].txt"

Изменить: я прочитал ваш вопрос еще раз ... это AppleScript. У меня больше опыта работы с обычным терминалом, чем с Automator и AppleScript, но я предполагаю, что вы можете вызывать AppleScript из Automator?

1

Хорошо, я обманул, но вы все еще получаете услугу Automator. Для использования оболочки вам потребуется настройка TextMate (обычно это происходит при первой установке, поэтому вы можете использовать mate из CLI).

Откройте Automator и создайте новый Сервис

Из Утилиты перетащите через окно Run Shell Script .

Вставьте следующий скрипт:

cd ~/Desktop;
touch newfile.txt;
mate newfile.txt

В основном это создает файл на рабочем столе с именем newfile.txt и затем открывает его в TextMate.

альтернативный текст

Запрошенное обновление:

  1. Откройте Automater и создайте новый сервис
  2. Перетащите через окно "Запустить Applescript"
  3. Вставьте в следующий Applescript, который был создан Оливье Фабре:

    on run {input, parameters}
    
        tell application "Finder"
            set currentPath to insertion location as text
            set filePath to POSIX path of currentPath & input
        end tell
    
        tell application "TextMate"
            activate
            open filePath
        end tell
    
        return input
    end run
    
  4. Сохранить сервис

    Automator

Что это делает:

Если вы выделите текст в приложении, он откроет пустой файл TextMate с именем выделенного текста в самом переднем окне Finder.

Что вы, вероятно, пытаетесь сделать:

Другие люди написали учебные пособия по созданию кнопки TextMate, которая находится на панели инструментов Finder, которая откроет пустой документ в этом окне или откроет выбранный файл в TextMate. Это то, что вы хотите сделать, и не требует Automator.

0

Модификация ответа Finiteloop, которая немного чище.

  1. Создать новый сервис в Automator
  2. Изменить 'Сервис получает выбранные "в" папки "
  3. Присвойте ему действие "Set Value of Variable", замените "Storage 1" на переменную с именем "dest"
  4. Добавьте действие "Новый текстовый файл" и перетащите переменную "dest" из области "Переменные" в нижней части экрана в поле "Где". Это проще, чем копировать файл шаблона.
  5. Сохранить с разумным именем.

Теперь, когда вы нажимаете на папку, вы можете перейти в меню «Сервисы» внизу и найти свою функцию.

Функция также появится на странице настроек Сервисов; Настройки -> Клавиатура -> Ярлыки -> Услуги (левая сторона). Вы можете включить и отключить его здесь. Вы также можете назначить ему сочетание клавиш. Наконец, если вы отмените выделение достаточного количества элементов в подменю «Папка» (чтобы их было четыре или меньше), ваша функция появится в нижней части контекстного меню.

0
try
    tell application "Finder"
        set ans to text returned of (display dialog "" default answer "")

        set opn to 0
        set fn to "new.txt"
        if ans is "," then
            set opn to 1
        else if ans is "/" then
            set opn to 2
        else if character -1 of ans is "," then
            set fn to text 1 thru -2 of ans
            set opn to 1
        else if character -1 of ans is "/" then
            set fn to text 1 thru -2 of ans
            set opn to 2
        end if

        if character -1 of fn is "." then
            set fn to fn & "txt"
        end if

        try
            set p to target of window 1
        on error
            set p to desktop as alias
        end try
        set f to make new file at p with properties {name:fn}
        set selection to f
        if opn is 1 then
            open f
        else if opn is 2 then
            open f using (path to application "TextMate")
        end if
    end tell
end try

Я использую это через FastScripts, но он также должен работать в качестве службы Automator. И да, этот сценарий безобразен даже по стандартам AppleScript.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .