как создать элемент автомата Finder, который отображается в «Службах» для создания нового текстового файла в папке с файлами? Я использую TextMate, поэтому лучше, если решение не зависит от редактора (вместо использования TextEdit).
6 ответов
Это не действие automator, но оно решило проблему создания нового файла, где я хотел: http://ignorethecode.net/blog/2009/05/31/creating-new-documents/. Посмотрите на решение под названием "Еще лучшее решение" (внизу страницы).
Как я это делаю: я создаю фиктивный текстовый файл и сохраняю его в какой-то папке в моих документах (это используется в качестве шаблона при каждом запуске службы). Затем я создаю рабочий процесс (сервис) следующим образом:
Все, что вам нужно сделать сейчас, это щелкнуть правой кнопкой мыши папку, в которую вы хотите поместить новый файл, и выбрать службу, созданную путем сохранения этого рабочего процесса.
Чтобы открыть вновь созданный файл, вы можете добавить действие "Открыть элементы Finder", в котором вы, очевидно, выбрали бы TextMate, а не TextEdit. Чтобы сделать его независимым от редактора, вы можете указать, чтобы он открывался с приложением по умолчанию, и он сделает это.
Если для вас очень важен запрос имени во время выполнения, вы можете добавить действие get text и назначить его второй переменной, а затем добавить действие переименования после действия copy и сказать заменить текст, заменяя имя файла вашего шаблона. с текстовой переменной. По умолчанию вы не можете использовать текстовые переменные так, как я описал, но в следующем посте есть обходной путь. Я знаю, что это работает под 10.6, и может или не может работать под более ранней версией OSX.
смотрите здесь для получения инструкций
Это должно работать:
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?
Хорошо, я обманул, но вы все еще получаете услугу Automator. Для использования оболочки вам потребуется настройка TextMate (обычно это происходит при первой установке, поэтому вы можете использовать mate
из CLI).
Откройте Automator и создайте новый Сервис
Из Утилиты перетащите через окно Run Shell Script .
Вставьте следующий скрипт:
cd ~/Desktop;
touch newfile.txt;
mate newfile.txt
В основном это создает файл на рабочем столе с именем newfile.txt и затем открывает его в TextMate.
Запрошенное обновление:
- Откройте Automater и создайте новый сервис
- Перетащите через окно "Запустить Applescript"
Вставьте в следующий 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
Сохранить сервис
Что это делает:
Если вы выделите текст в приложении, он откроет пустой файл TextMate с именем выделенного текста в самом переднем окне Finder.
Что вы, вероятно, пытаетесь сделать:
Другие люди написали учебные пособия по созданию кнопки TextMate, которая находится на панели инструментов Finder, которая откроет пустой документ в этом окне или откроет выбранный файл в TextMate. Это то, что вы хотите сделать, и не требует Automator.
Модификация ответа Finiteloop, которая немного чище.
- Создать новый сервис в Automator
- Изменить 'Сервис получает выбранные "в" папки "
- Присвойте ему действие "Set Value of Variable", замените "Storage 1" на переменную с именем "dest"
- Добавьте действие "Новый текстовый файл" и перетащите переменную "dest" из области "Переменные" в нижней части экрана в поле "Где". Это проще, чем копировать файл шаблона.
- Сохранить с разумным именем.
Теперь, когда вы нажимаете на папку, вы можете перейти в меню «Сервисы» внизу и найти свою функцию.
Функция также появится на странице настроек Сервисов; Настройки -> Клавиатура -> Ярлыки -> Услуги (левая сторона). Вы можете включить и отключить его здесь. Вы также можете назначить ему сочетание клавиш. Наконец, если вы отмените выделение достаточного количества элементов в подменю «Папка» (чтобы их было четыре или меньше), ваша функция появится в нижней части контекстного меню.
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.