@lppx/taskmgr 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +340 -0
  2. package/TaskScheduler.2.12.2/.signature.p7s +0 -0
  3. package/TaskScheduler.2.12.2/TaskScheduler.2.12.2.nupkg +0 -0
  4. package/TaskScheduler.2.12.2/TaskService.md +72 -0
  5. package/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.dll +0 -0
  6. package/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.xml +7855 -0
  7. package/TaskScheduler.2.12.2/lib/net45/de/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  8. package/TaskScheduler.2.12.2/lib/net45/es/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  9. package/TaskScheduler.2.12.2/lib/net45/fr/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  10. package/TaskScheduler.2.12.2/lib/net45/it/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  11. package/TaskScheduler.2.12.2/lib/net45/ja/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  12. package/TaskScheduler.2.12.2/lib/net45/pl/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  13. package/TaskScheduler.2.12.2/lib/net45/ru/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  14. package/TaskScheduler.2.12.2/lib/net45/sv/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  15. package/TaskScheduler.2.12.2/lib/net45/tr/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  16. package/TaskScheduler.2.12.2/lib/net45/zh-CN/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  17. package/TaskScheduler.2.12.2/lib/net45/zh-Hant/Microsoft.Win32.TaskScheduler.resources.dll +0 -0
  18. package/TaskScheduler.2.12.2/tsnew48.png +0 -0
  19. package/Templates//344/274/221/347/234/240/350/204/232/346/234/254.ps1 +3 -0
  20. package/Templates//345/200/222/350/256/241/346/227/266/344/274/221/347/234/240/350/204/232/346/234/254.ps1 +68 -0
  21. package/Templates//345/200/222/350/256/241/346/227/266/345/205/263/346/234/272/350/204/232/346/234/254.ps1 +66 -0
  22. package/bin/dev.cmd +3 -0
  23. package/bin/dev.js +5 -0
  24. package/bin/run.cmd +3 -0
  25. package/bin/run.js +5 -0
  26. package/dist/commands/scripts/add.d.ts +9 -0
  27. package/dist/commands/scripts/add.js +28 -0
  28. package/dist/commands/scripts/list.d.ts +6 -0
  29. package/dist/commands/scripts/list.js +25 -0
  30. package/dist/commands/scripts/open.d.ts +6 -0
  31. package/dist/commands/scripts/open.js +19 -0
  32. package/dist/commands/tsk/add.d.ts +20 -0
  33. package/dist/commands/tsk/add.js +70 -0
  34. package/dist/commands/tsk/del.d.ts +9 -0
  35. package/dist/commands/tsk/del.js +14 -0
  36. package/dist/commands/tsk/list.d.ts +9 -0
  37. package/dist/commands/tsk/list.js +46 -0
  38. package/dist/hooks/init.d.ts +3 -0
  39. package/dist/hooks/init.js +13 -0
  40. package/dist/index.d.ts +1 -0
  41. package/dist/index.js +1 -0
  42. package/dist/lib/task-scheduler.d.ts +37 -0
  43. package/dist/lib/task-scheduler.js +371 -0
  44. package/oclif.manifest.json +250 -0
  45. package/package.json +92 -0
@@ -0,0 +1,371 @@
1
+ import edge from 'edge-js';
2
+ const TASK_SCHEDULER_DLL = `${process.cwd()}/TaskScheduler.2.12.2/lib/net45/Microsoft.Win32.TaskScheduler.dll`;
3
+ const TASK_FOLDER = 'taskmgr';
4
+ function getCreateTaskCs() {
5
+ return `
6
+ #r "${TASK_SCHEDULER_DLL.replaceAll('\\', '\\\\')}"
7
+ #r "System.Xml.dll"
8
+
9
+ using Microsoft.Win32.TaskScheduler;
10
+ using System;
11
+ using System.Threading.Tasks;
12
+
13
+ public class Startup {
14
+ public async Task<object> Invoke(dynamic input) {
15
+ try {
16
+ string taskName = (string)input.taskName;
17
+ string executablePath = (string)input.executablePath;
18
+ string arguments = input.arguments != null ? (string)input.arguments : "";
19
+ string description = input.description != null ? (string)input.description : "";
20
+ string triggerType = input.triggerType != null ? (string)input.triggerType : "Daily";
21
+ string startTime = input.startTime != null ? (string)input.startTime : "09:00";
22
+
23
+ bool enabled = input.enabled != null ? (bool)input.enabled : true;
24
+ bool startWhenAvailable = input.startWhenAvailable != null ? (bool)input.startWhenAvailable : false;
25
+ bool hidden = input.hidden != null ? (bool)input.hidden : false;
26
+ bool wakeToRun = input.wakeToRun != null ? (bool)input.wakeToRun : true;
27
+ bool disallowStartIfOnBatteries = input.disallowStartIfOnBatteries != null ? (bool)input.disallowStartIfOnBatteries : false;
28
+ bool stopIfGoingOnBatteries = input.stopIfGoingOnBatteries != null ? (bool)input.stopIfGoingOnBatteries : false;
29
+
30
+ using (TaskService ts = new TaskService())
31
+ {
32
+ TaskFolder taskFolder;
33
+ try {
34
+ taskFolder = ts.GetFolder("${TASK_FOLDER}");
35
+ }
36
+ catch {
37
+ taskFolder = ts.RootFolder.CreateFolder("${TASK_FOLDER}");
38
+ }
39
+
40
+ TaskDefinition td = ts.NewTask();
41
+ td.RegistrationInfo.Description = description;
42
+
43
+ td.Settings.Enabled = enabled;
44
+ td.Settings.StartWhenAvailable = startWhenAvailable;
45
+ td.Settings.Hidden = hidden;
46
+ td.Settings.WakeToRun = wakeToRun;
47
+ td.Settings.DisallowStartIfOnBatteries = disallowStartIfOnBatteries;
48
+ td.Settings.StopIfGoingOnBatteries = stopIfGoingOnBatteries;
49
+
50
+ switch (triggerType.ToLower())
51
+ {
52
+ case "daily":
53
+ td.Triggers.Add(new DailyTrigger {
54
+ StartBoundary = DateTime.Today.Add(TimeSpan.Parse(startTime))
55
+ });
56
+ break;
57
+ case "weekly":
58
+ td.Triggers.Add(new WeeklyTrigger {
59
+ StartBoundary = DateTime.Today.Add(TimeSpan.Parse(startTime)),
60
+ DaysOfWeek = DaysOfTheWeek.Monday | DaysOfTheWeek.Wednesday | DaysOfTheWeek.Friday
61
+ });
62
+ break;
63
+ case "monthly":
64
+ td.Triggers.Add(new MonthlyTrigger {
65
+ StartBoundary = DateTime.Today.Add(TimeSpan.Parse(startTime))
66
+ });
67
+ break;
68
+ case "once":
69
+ td.Triggers.Add(new TimeTrigger {
70
+ StartBoundary = DateTime.Parse(startTime)
71
+ });
72
+ break;
73
+ case "boot":
74
+ td.Triggers.Add(new BootTrigger());
75
+ break;
76
+ case "logon":
77
+ td.Triggers.Add(new LogonTrigger());
78
+ break;
79
+ default:
80
+ td.Triggers.Add(new DailyTrigger {
81
+ StartBoundary = DateTime.Today.Add(TimeSpan.Parse(startTime))
82
+ });
83
+ break;
84
+ }
85
+
86
+ td.Actions.Add(new ExecAction(executablePath, arguments, null));
87
+
88
+ taskFolder.RegisterTaskDefinition(taskName, td);
89
+
90
+ return "Task '" + taskName + "' created successfully.";
91
+ }
92
+ }
93
+ catch (Exception ex)
94
+ {
95
+ return "Error: " + ex.Message;
96
+ }
97
+ }
98
+ }
99
+ `;
100
+ }
101
+ function getDeleteTaskCs() {
102
+ return `
103
+ #r "${TASK_SCHEDULER_DLL.replaceAll('\\', '\\\\')}"
104
+ #r "System.Xml.dll"
105
+
106
+ using Microsoft.Win32.TaskScheduler;
107
+ using System;
108
+ using System.Threading.Tasks;
109
+
110
+ public class Startup {
111
+ public async Task<object> Invoke(dynamic input) {
112
+ try {
113
+ string taskName = (string)input.taskName;
114
+
115
+ using (TaskService ts = new TaskService())
116
+ {
117
+ TaskFolder taskFolder = ts.GetFolder("${TASK_FOLDER}");
118
+ taskFolder.DeleteTask(taskName, false);
119
+ return "Task '" + taskName + "' deleted successfully.";
120
+ }
121
+ }
122
+ catch (Exception ex)
123
+ {
124
+ return "Error: " + ex.Message;
125
+ }
126
+ }
127
+ }
128
+ `;
129
+ }
130
+ function getGetTasksCs() {
131
+ return `
132
+ #r "${TASK_SCHEDULER_DLL.replaceAll('\\', '\\\\')}"
133
+ #r "System.Xml.dll"
134
+ #r "System.Web.Extensions.dll"
135
+
136
+ using Microsoft.Win32.TaskScheduler;
137
+ using System;
138
+ using System.Collections.Generic;
139
+ using System.Linq;
140
+ using System.Threading.Tasks;
141
+ using System.Web.Script.Serialization;
142
+
143
+ public class Startup {
144
+ public async Task<object> Invoke(dynamic input) {
145
+ try {
146
+ using (TaskService ts = new TaskService())
147
+ {
148
+ TaskFolder taskFolder;
149
+ try {
150
+ taskFolder = ts.GetFolder("${TASK_FOLDER}");
151
+ }
152
+ catch {
153
+ return "[]";
154
+ }
155
+ var tasks = taskFolder.GetTasks()
156
+ .Select(t => new {
157
+ name = t.Name,
158
+ path = t.Path,
159
+ state = t.State.ToString(),
160
+ enabled = t.Enabled,
161
+ lastRunTime = t.LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
162
+ nextRunTime = t.NextRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
163
+ lastTaskResult = t.LastTaskResult,
164
+ numberOfMissedRuns = t.NumberOfMissedRuns,
165
+ actions = t.Definition.Actions.Select(a => a.ToString()).ToList(),
166
+ triggers = t.Definition.Triggers.Select(tr => tr.ToString()).ToList()
167
+ })
168
+ .ToList();
169
+
170
+ return new JavaScriptSerializer().Serialize(tasks);
171
+ }
172
+ }
173
+ catch (Exception ex)
174
+ {
175
+ return "Error: " + ex.Message;
176
+ }
177
+ }
178
+ }
179
+ `;
180
+ }
181
+ function getGetTaskCs() {
182
+ return `
183
+ #r "${TASK_SCHEDULER_DLL.replaceAll('\\', '\\\\')}"
184
+ #r "System.Xml.dll"
185
+ #r "System.Web.Extensions.dll"
186
+
187
+ using Microsoft.Win32.TaskScheduler;
188
+ using System;
189
+ using System.Threading.Tasks;
190
+ using System.Web.Script.Serialization;
191
+
192
+ public class Startup {
193
+ public async Task<object> Invoke(dynamic input) {
194
+ try {
195
+ string taskName = (string)input.taskName;
196
+
197
+ using (TaskService ts = new TaskService())
198
+ {
199
+ TaskFolder taskFolder = ts.GetFolder("${TASK_FOLDER}");
200
+ var task = taskFolder.GetTask(taskName);
201
+ if (task == null)
202
+ {
203
+ return "Task '" + taskName + "' not found.";
204
+ }
205
+
206
+ var result = new {
207
+ name = task.Name,
208
+ path = task.Path,
209
+ state = task.State.ToString(),
210
+ lastRunTime = task.LastRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
211
+ nextRunTime = task.NextRunTime.ToString("yyyy-MM-dd HH:mm:ss"),
212
+ definition = new {
213
+ actions = task.Definition.Actions.Select(a => a.ToString()).ToList(),
214
+ triggers = task.Definition.Triggers.Select(t => t.ToString()).ToList()
215
+ }
216
+ };
217
+
218
+ return new JavaScriptSerializer().Serialize(result);
219
+ }
220
+ }
221
+ catch (Exception ex)
222
+ {
223
+ return "Error: " + ex.Message;
224
+ }
225
+ }
226
+ }
227
+ `;
228
+ }
229
+ function getRunTaskCs() {
230
+ return `
231
+ #r "${TASK_SCHEDULER_DLL.replaceAll('\\', '\\\\')}"
232
+ #r "System.Xml.dll"
233
+
234
+ using Microsoft.Win32.TaskScheduler;
235
+ using System;
236
+ using System.Threading.Tasks;
237
+
238
+ public class Startup {
239
+ public async Task<object> Invoke(dynamic input) {
240
+ try {
241
+ string taskName = (string)input.taskName;
242
+
243
+ using (TaskService ts = new TaskService())
244
+ {
245
+ TaskFolder taskFolder = ts.GetFolder("${TASK_FOLDER}");
246
+ var task = taskFolder.GetTask(taskName);
247
+ if (task == null)
248
+ {
249
+ return "Task '" + taskName + "' not found.";
250
+ }
251
+
252
+ task.Run();
253
+ return "Task '" + taskName + "' started successfully.";
254
+ }
255
+ }
256
+ catch (Exception ex)
257
+ {
258
+ return "Error: " + ex.Message;
259
+ }
260
+ }
261
+ }
262
+ `;
263
+ }
264
+ let _createTask = null;
265
+ let _deleteTask = null;
266
+ let _getTasks = null;
267
+ let _getTask = null;
268
+ let _runTask = null;
269
+ function getCreateTask() {
270
+ if (!_createTask) {
271
+ _createTask = edge.func(getCreateTaskCs());
272
+ }
273
+ return _createTask;
274
+ }
275
+ function getDeleteTask() {
276
+ if (!_deleteTask) {
277
+ _deleteTask = edge.func(getDeleteTaskCs());
278
+ }
279
+ return _deleteTask;
280
+ }
281
+ function getGetTasks() {
282
+ if (!_getTasks) {
283
+ _getTasks = edge.func(getGetTasksCs());
284
+ }
285
+ return _getTasks;
286
+ }
287
+ function getGetTask() {
288
+ if (!_getTask) {
289
+ _getTask = edge.func(getGetTaskCs());
290
+ }
291
+ return _getTask;
292
+ }
293
+ function getRunTask() {
294
+ if (!_runTask) {
295
+ _runTask = edge.func(getRunTaskCs());
296
+ }
297
+ return _runTask;
298
+ }
299
+ export async function createScheduledTask(options) {
300
+ const fn = getCreateTask();
301
+ return new Promise((resolve, reject) => {
302
+ fn(options, (error, result) => {
303
+ if (error)
304
+ reject(error);
305
+ else
306
+ resolve(result);
307
+ });
308
+ });
309
+ }
310
+ export async function deleteScheduledTask(taskName) {
311
+ const fn = getDeleteTask();
312
+ return new Promise((resolve, reject) => {
313
+ fn({ taskName }, (error, result) => {
314
+ if (error)
315
+ reject(error);
316
+ else
317
+ resolve(result);
318
+ });
319
+ });
320
+ }
321
+ export async function getAllTasks() {
322
+ const fn = getGetTasks();
323
+ return new Promise((resolve, reject) => {
324
+ fn({}, (error, result) => {
325
+ if (error) {
326
+ reject(error);
327
+ return;
328
+ }
329
+ if (!result) {
330
+ resolve('获取任务列表失败');
331
+ return;
332
+ }
333
+ if (result.startsWith('Error:')) {
334
+ resolve(result);
335
+ return;
336
+ }
337
+ if (result === '[]') {
338
+ resolve([]);
339
+ return;
340
+ }
341
+ resolve(JSON.parse(result));
342
+ });
343
+ });
344
+ }
345
+ export async function getScheduledTask(taskName) {
346
+ const fn = getGetTask();
347
+ return new Promise((resolve, reject) => {
348
+ fn({ taskName }, (error, result) => {
349
+ if (error) {
350
+ reject(error);
351
+ return;
352
+ }
353
+ if (!result || result.startsWith('Error:') || result.includes('not found')) {
354
+ resolve(result ?? '获取任务详情失败');
355
+ return;
356
+ }
357
+ resolve(JSON.parse(result));
358
+ });
359
+ });
360
+ }
361
+ export async function runScheduledTask(taskName) {
362
+ const fn = getRunTask();
363
+ return new Promise((resolve, reject) => {
364
+ fn({ taskName }, (error, result) => {
365
+ if (error)
366
+ reject(error);
367
+ else
368
+ resolve(result ?? '运行任务失败');
369
+ });
370
+ });
371
+ }
@@ -0,0 +1,250 @@
1
+ {
2
+ "commands": {
3
+ "scripts:add": {
4
+ "aliases": [],
5
+ "args": {
6
+ "path": {
7
+ "description": "脚本文件路径",
8
+ "name": "path",
9
+ "required": true
10
+ }
11
+ },
12
+ "description": "添加脚本到用户配置目录",
13
+ "examples": [
14
+ "<%= config.bin %> <%= command.id %> ./script.ps1"
15
+ ],
16
+ "flags": {},
17
+ "hasDynamicHelp": false,
18
+ "hiddenAliases": [],
19
+ "id": "scripts:add",
20
+ "pluginAlias": "@lppx/taskmgr",
21
+ "pluginName": "@lppx/taskmgr",
22
+ "pluginType": "core",
23
+ "strict": true,
24
+ "enableJsonFlag": false,
25
+ "isESM": true,
26
+ "relativePath": [
27
+ "dist",
28
+ "commands",
29
+ "scripts",
30
+ "add.js"
31
+ ]
32
+ },
33
+ "scripts:list": {
34
+ "aliases": [],
35
+ "args": {},
36
+ "description": "列出用户配置目录下的所有脚本",
37
+ "examples": [
38
+ "<%= config.bin %> <%= command.id %>"
39
+ ],
40
+ "flags": {},
41
+ "hasDynamicHelp": false,
42
+ "hiddenAliases": [],
43
+ "id": "scripts:list",
44
+ "pluginAlias": "@lppx/taskmgr",
45
+ "pluginName": "@lppx/taskmgr",
46
+ "pluginType": "core",
47
+ "strict": true,
48
+ "enableJsonFlag": false,
49
+ "isESM": true,
50
+ "relativePath": [
51
+ "dist",
52
+ "commands",
53
+ "scripts",
54
+ "list.js"
55
+ ]
56
+ },
57
+ "scripts:open": {
58
+ "aliases": [],
59
+ "args": {},
60
+ "description": "打开脚本文件目录",
61
+ "examples": [
62
+ "<%= config.bin %> <%= command.id %>"
63
+ ],
64
+ "flags": {},
65
+ "hasDynamicHelp": false,
66
+ "hiddenAliases": [],
67
+ "id": "scripts:open",
68
+ "pluginAlias": "@lppx/taskmgr",
69
+ "pluginName": "@lppx/taskmgr",
70
+ "pluginType": "core",
71
+ "strict": true,
72
+ "enableJsonFlag": false,
73
+ "isESM": true,
74
+ "relativePath": [
75
+ "dist",
76
+ "commands",
77
+ "scripts",
78
+ "open.js"
79
+ ]
80
+ },
81
+ "tsk:add": {
82
+ "aliases": [],
83
+ "args": {
84
+ "taskName": {
85
+ "description": "任务名称",
86
+ "name": "taskName",
87
+ "required": true
88
+ }
89
+ },
90
+ "description": "创建定时任务",
91
+ "examples": [
92
+ "<%= config.bin %> <%= command.id %> myTask --path \"C:\\app.exe\" --trigger daily --time \"09:00\"",
93
+ "<%= config.bin %> <%= command.id %> backupTask --path \"C:\\backup.exe\" --arguments \"--full --dest D:\\backup\"",
94
+ "<%= config.bin %> <%= command.id %> reportTask --path \"C:\\report.exe\" --arguments '-f json -o \"output.txt\"' --trigger weekly",
95
+ "<%= config.bin %> <%= command.id %> psTask --path \"powershell.exe\" --arguments '-ExecutionPolicy Bypass -File \"C:\\scripts\\cleanup.ps1\"' --trigger daily",
96
+ "<%= config.bin %> <%= command.id %> psInlineTask --path \"powershell.exe\" --arguments '-Command \"Get-ChildItem C:\\temp | Remove-Item -Recurse -Force\"' --trigger weekly"
97
+ ],
98
+ "flags": {
99
+ "arguments": {
100
+ "description": "执行参数",
101
+ "name": "arguments",
102
+ "hasDynamicHelp": false,
103
+ "multiple": false,
104
+ "type": "option"
105
+ },
106
+ "path": {
107
+ "description": "可执行文件路径",
108
+ "name": "path",
109
+ "required": true,
110
+ "hasDynamicHelp": false,
111
+ "multiple": false,
112
+ "type": "option"
113
+ },
114
+ "description": {
115
+ "description": "任务描述",
116
+ "name": "description",
117
+ "hasDynamicHelp": false,
118
+ "multiple": false,
119
+ "type": "option"
120
+ },
121
+ "hidden": {
122
+ "description": "是否隐藏任务",
123
+ "name": "hidden",
124
+ "allowNo": false,
125
+ "type": "boolean"
126
+ },
127
+ "start-when-available": {
128
+ "description": "错过启动时间后是否自动启动",
129
+ "name": "start-when-available",
130
+ "allowNo": false,
131
+ "type": "boolean"
132
+ },
133
+ "stop-on-battery": {
134
+ "description": "使用电池供电时是否停止任务",
135
+ "name": "stop-on-battery",
136
+ "allowNo": false,
137
+ "type": "boolean"
138
+ },
139
+ "time": {
140
+ "description": "任务开始时间 (HH:mm)",
141
+ "name": "time",
142
+ "default": "09:00",
143
+ "hasDynamicHelp": false,
144
+ "multiple": false,
145
+ "type": "option"
146
+ },
147
+ "trigger": {
148
+ "description": "触发类型: daily, weekly, monthly, once, boot, logon",
149
+ "name": "trigger",
150
+ "default": "daily",
151
+ "hasDynamicHelp": false,
152
+ "multiple": false,
153
+ "options": [
154
+ "boot",
155
+ "daily",
156
+ "logon",
157
+ "monthly",
158
+ "once",
159
+ "weekly"
160
+ ],
161
+ "type": "option"
162
+ },
163
+ "wake": {
164
+ "description": "是否唤醒计算机运行任务",
165
+ "name": "wake",
166
+ "allowNo": false,
167
+ "type": "boolean"
168
+ }
169
+ },
170
+ "hasDynamicHelp": false,
171
+ "hiddenAliases": [],
172
+ "id": "tsk:add",
173
+ "pluginAlias": "@lppx/taskmgr",
174
+ "pluginName": "@lppx/taskmgr",
175
+ "pluginType": "core",
176
+ "strict": true,
177
+ "enableJsonFlag": false,
178
+ "isESM": true,
179
+ "relativePath": [
180
+ "dist",
181
+ "commands",
182
+ "tsk",
183
+ "add.js"
184
+ ]
185
+ },
186
+ "tsk:del": {
187
+ "aliases": [],
188
+ "args": {
189
+ "taskName": {
190
+ "description": "任务名称",
191
+ "name": "taskName",
192
+ "required": true
193
+ }
194
+ },
195
+ "description": "删除定时任务",
196
+ "examples": [
197
+ "<%= config.bin %> <%= command.id %> myTask"
198
+ ],
199
+ "flags": {},
200
+ "hasDynamicHelp": false,
201
+ "hiddenAliases": [],
202
+ "id": "tsk:del",
203
+ "pluginAlias": "@lppx/taskmgr",
204
+ "pluginName": "@lppx/taskmgr",
205
+ "pluginType": "core",
206
+ "strict": true,
207
+ "enableJsonFlag": false,
208
+ "isESM": true,
209
+ "relativePath": [
210
+ "dist",
211
+ "commands",
212
+ "tsk",
213
+ "del.js"
214
+ ]
215
+ },
216
+ "tsk:list": {
217
+ "aliases": [],
218
+ "args": {},
219
+ "description": "列出所有定时任务",
220
+ "examples": [
221
+ "<%= config.bin %> <%= command.id %>",
222
+ "<%= config.bin %> <%= command.id %> --multi"
223
+ ],
224
+ "flags": {
225
+ "multi": {
226
+ "description": "使用多行格式显示任务详情",
227
+ "name": "multi",
228
+ "allowNo": false,
229
+ "type": "boolean"
230
+ }
231
+ },
232
+ "hasDynamicHelp": false,
233
+ "hiddenAliases": [],
234
+ "id": "tsk:list",
235
+ "pluginAlias": "@lppx/taskmgr",
236
+ "pluginName": "@lppx/taskmgr",
237
+ "pluginType": "core",
238
+ "strict": true,
239
+ "enableJsonFlag": false,
240
+ "isESM": true,
241
+ "relativePath": [
242
+ "dist",
243
+ "commands",
244
+ "tsk",
245
+ "list.js"
246
+ ]
247
+ }
248
+ },
249
+ "version": "0.0.0"
250
+ }