解析 osascript -l JavaScript 的命令行参数
Parsing command line arguments for osascript -l JavaScript
我正在寻找一种方法来为使用 osascript 的 javascript 文件获取命令行参数。
我试过引用 argv,它适用于 apple 脚本文件。
我试过引用系统,我也试过引用这个。
文档似乎是浅显易懂的...我尝试了多次搜索,但我得到的不是节点匹配就是 apple 脚本匹配。
这是我要传递参数的脚本。
#!/usr/bin/osascript
console.log(this)
for ( key in this ) {
console.log(key)
}
var app = Application.currentApplication()
app.includeStandardAdditions = true
var Calendar = Application("Calendar")
var eventStart = app.currentDate()
eventStart = eventStart
eventStart.setDate(eventStart.getDate() + 1)
eventStart.setHours(15)
eventStart.setMinutes(0)
eventStart.setSeconds(0)
var eventEnd = new Date(eventStart.getTime())
eventEnd.setHours(16)
var projectCalendars = Calendar.calendars.whose({name: "csmu"})
var projectCalendar = projectCalendars[0]
var event = Calendar.Event({summary: "Important Meeting!", startDate: eventStart, endDate: eventEnd})
projectCalendar.events.push(event)
event
这是一个例子运行。
./create-event.js '{"calendar":"BD2T-AT"}'
[object GlobalObject]
eventEnd
eventStart
Calendar
event
app
projectCalendar
projectCalendars
Application("Calendar").calendars.whose({_match: [ObjectSpecifier().name, "csmu"]}).calendars.at(0).events.byId("3F6F91B0-06CD-4688-ADED-238BA40915DC")
如何解析 osascript -l 的命令行参数 JavaScript
我尝试创建一个 运行 函数。成功了!
示例脚本。
#!/usr/bin/osascript
function run(command_line_parameters){
command_line_parameters = JSON.parse(command_line_parameters)
calendar_name = command_line_parameters['calendar']
summary = command_line_parameters['summary']
starts = command_line_parameters['starts']
start_date_time = starts.split(' ')
start_date = start_date_time[0]
start_time = start_date_time[1].split(':')
ends = command_line_parameters['ends']
end_date_time = ends.split(' ')
end_date = end_date_time[0]
end_time = end_date_time[1].split(':')
var app = Application.currentApplication()
app.includeStandardAdditions = true
var Calendar = Application("Calendar")
var eventStart = new Date(start_date)
eventStart.setHours(start_time[0])
eventStart.setMinutes(start_time[1])
eventStart.setSeconds(0)
var eventEnd = new Date(end_date)
eventEnd.setHours(end_time[0])
eventEnd.setMinutes(end_time[1])
eventEnd.setSeconds(0)
console.log(calendar_name,summary,starts,ends)
var projectCalendars = Calendar.calendars.whose({name: calendar_name})
var projectCalendar = projectCalendars[0]
var event = Calendar.Event({summary: summary, startDate: eventStart, endDate: eventEnd})
projectCalendar.events.push(event)
event
}
例子运行.
./create-event.js '{"calendar":"BD2L-AT", "starts":"2018-12-16 09:00", "ends":"2018-12-16 13:43", "summary":"Created from command line"}'
在 2018 年 12 月 16 日 09:00 到 13:43 的 BD2L-AT 日历中创建了一个事件。
我正在寻找一种方法来为使用 osascript 的 javascript 文件获取命令行参数。
我试过引用 argv,它适用于 apple 脚本文件。 我试过引用系统,我也试过引用这个。
文档似乎是浅显易懂的...我尝试了多次搜索,但我得到的不是节点匹配就是 apple 脚本匹配。
这是我要传递参数的脚本。
#!/usr/bin/osascript
console.log(this)
for ( key in this ) {
console.log(key)
}
var app = Application.currentApplication()
app.includeStandardAdditions = true
var Calendar = Application("Calendar")
var eventStart = app.currentDate()
eventStart = eventStart
eventStart.setDate(eventStart.getDate() + 1)
eventStart.setHours(15)
eventStart.setMinutes(0)
eventStart.setSeconds(0)
var eventEnd = new Date(eventStart.getTime())
eventEnd.setHours(16)
var projectCalendars = Calendar.calendars.whose({name: "csmu"})
var projectCalendar = projectCalendars[0]
var event = Calendar.Event({summary: "Important Meeting!", startDate: eventStart, endDate: eventEnd})
projectCalendar.events.push(event)
event
这是一个例子运行。
./create-event.js '{"calendar":"BD2T-AT"}'
[object GlobalObject]
eventEnd
eventStart
Calendar
event
app
projectCalendar
projectCalendars
Application("Calendar").calendars.whose({_match: [ObjectSpecifier().name, "csmu"]}).calendars.at(0).events.byId("3F6F91B0-06CD-4688-ADED-238BA40915DC")
如何解析 osascript -l 的命令行参数 JavaScript
我尝试创建一个 运行 函数。成功了!
示例脚本。
#!/usr/bin/osascript
function run(command_line_parameters){
command_line_parameters = JSON.parse(command_line_parameters)
calendar_name = command_line_parameters['calendar']
summary = command_line_parameters['summary']
starts = command_line_parameters['starts']
start_date_time = starts.split(' ')
start_date = start_date_time[0]
start_time = start_date_time[1].split(':')
ends = command_line_parameters['ends']
end_date_time = ends.split(' ')
end_date = end_date_time[0]
end_time = end_date_time[1].split(':')
var app = Application.currentApplication()
app.includeStandardAdditions = true
var Calendar = Application("Calendar")
var eventStart = new Date(start_date)
eventStart.setHours(start_time[0])
eventStart.setMinutes(start_time[1])
eventStart.setSeconds(0)
var eventEnd = new Date(end_date)
eventEnd.setHours(end_time[0])
eventEnd.setMinutes(end_time[1])
eventEnd.setSeconds(0)
console.log(calendar_name,summary,starts,ends)
var projectCalendars = Calendar.calendars.whose({name: calendar_name})
var projectCalendar = projectCalendars[0]
var event = Calendar.Event({summary: summary, startDate: eventStart, endDate: eventEnd})
projectCalendar.events.push(event)
event
}
例子运行.
./create-event.js '{"calendar":"BD2L-AT", "starts":"2018-12-16 09:00", "ends":"2018-12-16 13:43", "summary":"Created from command line"}'
在 2018 年 12 月 16 日 09:00 到 13:43 的 BD2L-AT 日历中创建了一个事件。