명령 행을 통해 미리 알림을 추가하려면 어떻게해야합니까?


18

가끔 명령 줄에서 Reminders.app에 알림을 추가하는 것이 유용 할 수 있습니다. 특히 알림이 iCloud와 동기화되어 있기 때문입니다. 그렇게 할 방법이 있습니까?

AppleScript에 의존하지 않는 솔루션이 선호 됩니다.


2
AppleScript를 사용하지 않는 이유는 무엇입니까?
다니엘

답변:


9
osascript - title <<END
on run a
tell app "Reminders"
tell list "Reminders" of default account
make new reminder with properties {name:item 1 of a}
end
end
end
END

비어있는 새 알림 항목 작업만으로 Automator 워크 플로를 만든 다음로 실행할 수 있습니다 automator -i title test.workflow.

Mac OS X 힌트에서이 게시물을 참조하십시오 .


답변 주셔서 감사합니다. 불행히도, 이것은 쉘 스크립트 나 스크립트 편집기에서 실행되지 않습니다. 내가 무엇을 놓치고 있습니까?
myhd

1
#!/usr/bin/env bash첫 번째 줄로 추가 하고 실행 chmod +x /path/to/script하거나 실행하십시오 bash /path/to/script.sh. 또는 첫 번째와 마지막 줄을 제거하고 AppleScript 편집기에 저장하십시오.
Lri

1
Automator 힌트가 트릭을 수행했습니다! AppleScript 솔루션과 달리 Reminders.app을 시작할 필요는 없습니다.
myhd

14

다음은 명령 줄 인수를 통해 제목, 종료 날짜 및 시간을 설정할 수있는 다른 버전입니다.

#!/usr/bin/env bash                                                                                                               
# Make a new reminder via terminal script                                                                                         
# args: remind <title> <date> <time>                                                                                                                                                                                 

osascript - "$1" "$2" "$3" <<END                                                                                                        
on run argv                                                                                                                       
    set stringedAll to date (item 2 of argv & " " & item 3 of argv)                                                               
    tell application "Reminders"                                                                                                  
        make new reminder with properties {name:item 1 of argv, due date:stringedAll}                                             
    end tell                                                                                                                      
end run                                                                                                                           
END    

따라서이 스크립트의 이름을 "리마인드"로하고 실행 권한을 부여하면 (chmod 755 리마인더) 다음을 수행 할 수 있습니다.

$ ./remind "Go to grocery store" 12/15/2013 10:00:00PM                              

이것은 저에게 효과적이지만 어떻게 알람을 추가 할 수 있습니까? 그것이 실제로 팝업으로 만들고 알림 날짜와 시간에 알림을 보내는 방법은 무엇입니까? 그대로, 알림이 있지만 알림을받지 않습니다.
GrouchyGaijin

2
tell application "Reminders"
    activate
    show list "Reminders"
end tell
set stringedDate to "12/11/2015"
set stringedHour to "10:00:00PM"
set stringedAll to date (stringedDate & " " & stringedHour)
tell application "Reminders" to tell list "Reminders" of default account to make new reminder with properties {name:"this is just test remainder", remind me date:stringedAll, due date:stringedAll, priority:1}

1
감사합니다! 영어 가 사용자 인터페이스 언어 인 시스템에서만 작동 합니다. 다른 언어에서는 목록 이름이 현지화되어 있습니다. 예를 들어 "알림"은 독일어로 "Erinnerungen"이됩니다
myhd

이 예는 실제로 위의 "만료일"과 달리 "알림 날짜"를 사용하는 것을 보여줍니다. "알림 날짜"는 알람 / 경고를 얻기 위해 정확히 사용하려는 것입니다.
Grrrr

2

위의 AppleScript와 동일한 기능이 있습니다. 그러나 ES6이있는 JXA에서는.

#!/usr/bin/env osascript -l JavaScript

const RemindersApp = Application('Reminders');

function run(argv) {
    [name, date, time] = argv;
    dueDate = new Date(date + " " + time);
    reminder = RemindersApp.Reminder({name: name, dueDate: dueDate});
    RemindersApp.defaultList.reminders.push(reminder);
}

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.