mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1177 lines
31 KiB
1177 lines
31 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1994.
|
|
//
|
|
// File: jt.rc
|
|
//
|
|
// Contents: Main resource definition file
|
|
//
|
|
// History: 01-02-96 DavidMun Created
|
|
//
|
|
// Notes: See Notes at the start of help.cxx for instructions on
|
|
// adding help for a new command.
|
|
//
|
|
// When adding or editing strings in the RCDATA blocks,
|
|
// remember that each string must be explicitly null
|
|
// terminated, and that the DisplayHelp() function in help.cxx
|
|
// expects to find an empty string ("\0") at the end of the
|
|
// RCDATA block.
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#include <windows.h>
|
|
#include <ntverp.h>
|
|
|
|
#define VER_FILETYPE VFT_APP
|
|
#define VER_FILESUBTYPE VFT2_UNKNOWN
|
|
#define VER_FILEDESCRIPTION_STR "Job Test"
|
|
#define VER_INTERNALNAME_STR "jt\0"
|
|
#define VER_ORIGINALFILENAME_STR "jt.exe"
|
|
|
|
#include <common.ver>
|
|
|
|
#include "resource.h"
|
|
|
|
|
|
RC_NOTIMPL RCDATA
|
|
BEGIN
|
|
"This function is not yet implemented.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_ABORT RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /ABJ - abort task\n"
|
|
//" /ABQ - abort queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Invoke the Abort command on the task or queue.\n"
|
|
" Invoke the Abort command on the task.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /RJ /ABJ\n"
|
|
" - runs a task, then aborts it\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_ATSIGN RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" @ <file>\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Read commands from a file.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <file> - name of file from which to read commands.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" Blank lines and all characters following semicolons are ignored.\n"
|
|
"\n"
|
|
" Environment variables are expanded (just like batch files).\n"
|
|
"\n"
|
|
" Recursion is allowed.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" @script\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
//
|
|
// Resource Kit version does not contain a SAGE conversion entry point
|
|
//
|
|
|
|
#ifndef RES_KIT
|
|
RC_CONVERTSAGE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /CSAGE\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Convert all SAGE tasks to task scheduler tasks.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" This command is only available in versions of JT built for Win9x and\n"
|
|
" running on Win9x.\n"
|
|
"\n"
|
|
" This copy of JT was built for %s.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /csage\n\0"
|
|
"\0"
|
|
END
|
|
|
|
#endif // RES_KIT not defined
|
|
|
|
RC_TRIGPROPS RCDATA
|
|
BEGIN
|
|
" The property list has the form <propname> = <value>...\n"
|
|
"\n"
|
|
" The trigger properties and form of their values:\n"
|
|
"\n"
|
|
" StartDate = <date>\n"
|
|
" EndDate = <date>\n"
|
|
" StartTime = <time>\n"
|
|
" MinutesDuration = n\n"
|
|
" MinutesInterval = n\n"
|
|
" HasEndDate = {1|0}\n"
|
|
" KillAtDuration = {1|0}\n"
|
|
" Disabled = {1|0}\n"
|
|
" Type = {Once|Daily|Weekly|MonthlyDate|MonthlyDOW|OnIdle|AtStartup|AtLogon}\n"
|
|
" TypeArguments = <type-args-list>\n"
|
|
"\n"
|
|
" <date> - { m/d/y | TODAY }\n"
|
|
" <time> - { h:m | NOW }\n"
|
|
" <type-args-list> - see below\n"
|
|
"\n"
|
|
" Note that NOW is actually %u seconds in the future so it can be used to\n"
|
|
" create triggers that will fire soon.\n"
|
|
"\n"
|
|
"\n"
|
|
" The following table lists the forms of the <type-args-list> property\n"
|
|
" value for each of the trigger types:\n"
|
|
"\n"
|
|
" Trigger Argument List Argument meanings\n"
|
|
" Type Format\n"
|
|
" ----------- ------------ ----------------------------\n"
|
|
" DAILY n DaysInterval\n"
|
|
" WEEKLY n, <DOW> WeeksInterval, DaysOfTheWeek\n"
|
|
" MONTHLYDATE <DOM>, <months> DaysOfTheMonth, Months\n"
|
|
" MONTHLYDOW n, <DOW>, <months> Week, DaysOfTheWeek, Months\n"
|
|
" ONCE (no args)\n"
|
|
" ONIDLE (no args)\n"
|
|
" ATSTARTUP (no args)\n"
|
|
" ATLOGON (no args)\n"
|
|
"\n"
|
|
" <DOW> is a string with one letter per weekday. To specify the task\n"
|
|
" is to run on every day, use the string UMTWRFA. To specify no days\n"
|
|
" use a period.\n"
|
|
"\n"
|
|
" <DOM> is a comma-separated list of day numbers and ranges. Some examples:\n"
|
|
" 1-31\n"
|
|
" 10\n"
|
|
" 20,21,22\n"
|
|
" 1,3,5,7-10\n"
|
|
" 2-8,20,12\n"
|
|
"\n"
|
|
" <months> is a string containing three letter abbreviations for months.\n"
|
|
" For all months, use: JanFebMarAprMayJunJulAugSepOctNovDec (case and order\n"
|
|
" are not significant).\n"
|
|
"\n"
|
|
" The trigger type must be specified before the type arguments, otherwise\n"
|
|
" properties may appear in any order. Case, whitespace, and leading zeros\n"
|
|
" are not significant.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_CREATETRIGGER1 RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /CTJ [<props>] - create trigger in task\n"
|
|
//" /CTQ [<props>] - create trigger in queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Create a new trigger.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" [<props>] - Optional list of trigger properties.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_CREATETRIGGER2 RCDATA
|
|
BEGIN
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /ctj\n"
|
|
" - creates a trigger with default values\n"
|
|
"\n"
|
|
" /ctj StartTime=13:40 StartDate=3/4/1996 type=weekly typearguments = 1,mwf\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_DELETETRIGGER RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /DTJ [<id>] - delete trigger <id> (default 0) from task\n"
|
|
//" * /DTQ [<id>] - delete trigger <id> (default 0) from queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Delete a single trigger from task or queue.\n"
|
|
" Delete a single trigger from task.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" [<id>] - 0-based index of trigger to delete. If omitted, trigger 0\n"
|
|
" will be deleted.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /dtj 3\n\0"
|
|
"\0"
|
|
END
|
|
|
|
//
|
|
// Resource Kit version does not contain an entry point to bring up prop sheets
|
|
//
|
|
|
|
#ifndef RES_KIT
|
|
RC_EDITJOB RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /EJ [<pageno> [T|F]] - edit task\n"
|
|
//"* /EJQ <name> [<pageno> [T|F]] - edit task <name> in queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Invoke the Edit task UI.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <pageno> - if omitted, the entire property sheet is presented. Otherwise\n"
|
|
" only the specified (zero-based) page is displayed.\n"
|
|
" [T|F] - if page number is specified, may also be specified as\n"
|
|
" persist-changes argument of IProvideTaskPage::GetPage\n"
|
|
//" <name> - name of task in queue\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" The [T|F] argument is interpreted as TRUE if it starts with a 't' (case\n"
|
|
" insensitive) and false otherwise. If omitted, it defaults to TRUE.\n"
|
|
"\n"
|
|
" If specified as false, this argument should prevent the property sheet\n"
|
|
" code from persisting changes when the user selects Apply or OK. Any\n"
|
|
//" changes the user made will have been made to the in-memory task or\n"
|
|
" changes the user made will have been made to the in-memory task\n"
|
|
//" queue object, however, which should be marked as dirty.\n"
|
|
" object, however, which should be marked as dirty.\n"
|
|
"\n"
|
|
//" Remember that JT will automatically save the task or queue object if it\n"
|
|
" Remember that JT will automatically save the task object if it\n"
|
|
" is marked as dirty, except when executing the /LJ (or /LQ) command.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
//"\n"
|
|
//" /ejq atask\n"
|
|
//" - edit the task 'atask' in the in-memory queue object\n"
|
|
"\n"
|
|
" /ej\n"
|
|
" - edit the task object\n"
|
|
"\n"
|
|
" /ej 1\n"
|
|
" - open the schedule page of the task property sheet\n\0"
|
|
//"\n"
|
|
//" /ejq atask 0 f\n"
|
|
//" - open the task page of the task property sheet for task atask in the\n"
|
|
//" in-memory queue object, and tell the property sheet not to\n"
|
|
//" automatically persist changes\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
//
|
|
// Resource Kit version does not permit enumerator manipulation
|
|
//
|
|
|
|
RC_ENUMCLONE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /ENC <id1> <id2> - enumerator clone <id1> from <id2>\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Fill enumerator slot <id1> with a clone of the enumerator in slot <id2>.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <id1> - slot number of new enumerator\n"
|
|
" <id2> - slot number of enumerator to copy\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" If slot <id1> is not empty, its enumerator will be released automatically.\n"
|
|
" See help for the /SCE command for an explanation of enumerator slots.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /enc 0 1\n"
|
|
" - clone the enumerator in slot 1 into slot 0\n\0"
|
|
"\0"
|
|
END
|
|
|
|
//
|
|
// Resource Kit version does not permit enumerator manipulation
|
|
//
|
|
|
|
RC_ENUMNEXT RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /ENN <id> <n> - enumerate next <n> items\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Use enumerator in slot <id> to display the next <n> task/queue objects\n"
|
|
" Use enumerator in slot <id> to display the next <n> task objects\n"
|
|
" in the tasks folder.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <id> - slot number of enumerator to use\n"
|
|
" <n> - maximum number of items to enumerate\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" This command displays an error if slot <id> is empty.\n"
|
|
" <n> is the <celt> argument for IEnumtasks::Next.\n"
|
|
" See help for the /SCE command for an explanation of enumerator slots.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /enn 1 3\n"
|
|
" - use enumerator in slot 1 to display the next three items.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
//
|
|
// Resource Kit version does not permit enumerator manipulation
|
|
//
|
|
|
|
RC_ENUMRESET RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /ENR <id> - enumerator reset\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Reset the enumerator in slot <id>.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <id> - slot number of enumerator to reset\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" This command displays an error if slot <id> is empty.\n"
|
|
" See help for the /SCE command for an explanation of enumerator slots.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sce 1 /enn 1 3 /enr 1 /enn 1 3\n"
|
|
" - create an enumerator in slot 1, enumerate the first three items,\n"
|
|
" then reset it and enumerate the first three items again.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
//
|
|
// Resource Kit version does not permit enumerator manipulation
|
|
//
|
|
|
|
RC_ENUMSKIP RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /ENS <id> <n> - enumerator skip forward by <n>\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Skip forward by <n> items on enumerator in slot <id>.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <id> - slot number of enumerator to perform skip\n"
|
|
//" <n> - number of task/queue objects to skip\n"
|
|
" <n> - number of task objects to skip\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" This command displays an error if slot <id> is empty.\n"
|
|
" See help for the /SCE command for an explanation of enumerator slots.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /enr 0 /enn 0 1 /ens 0 1 /enn 0 1\n"
|
|
" - reset the enumerator in slot 0, enumerate the first item,\n"
|
|
" skip the second item, and enumerate the third item.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
//
|
|
// Resource Kit version does not permit use of objects other than TASKS,
|
|
// which removes the need for this function (also, Queues are NYI as of NT5)
|
|
//
|
|
|
|
RC_ISJOBORQUEUE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
//" /ISJQ <file> - invokes IsTask and IsQueue methods on <file>\n"
|
|
" /ISJQ <file> - invokes IsTask method on <file>\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Ask the task scheduler code whether a given file is a task or a queue\n"
|
|
" Ask the task scheduler code whether a given file is a task \n"
|
|
" object.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <file> - file to check.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
//" Errors returned by the IsTask and IsQueue methods are displayed but are\n"
|
|
" Errors returned by the IsTask method are displayed but are\n"
|
|
" not considered an error in this command. This allows you to specify\n"
|
|
" a number of invalid filenames in a single script, which would otherwise\n"
|
|
" terminate after the first /ISJQ to return an error.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /isjq my_task.job\n"
|
|
//" - displays the results of calling Istask and IsQueue methods with the\n"
|
|
" - displays the results of calling the IsTask method with the\n"
|
|
" file my_task.job.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
#endif // RES_KIT not defined
|
|
|
|
RC_LOAD RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /LJ <file> - load task object from <file>\n"
|
|
//" * /LQ <file> - load queue object from <file>\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Load a task or queue file.\n"
|
|
" Load a task file.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <file> - file to load.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" JT acts like notepad.exe, in that when it starts it creates a blank task\n"
|
|
" object, and all commands operate on that object. You can fill that blank\n"
|
|
" object by loading a file from disk, or by putting data into it using the\n"
|
|
" /SJ (set task) command.\n"
|
|
"\n"
|
|
" Every Save command (/SVJ) is actually a Save As.\n"
|
|
"\n"
|
|
" Just before JT exits, it checks to see if the task object is dirty. If a\n"
|
|
" name has been associated with it by a Load or Save command, it will be\n"
|
|
" saved automatically.\n"
|
|
"\n"
|
|
" The task object is *not* automatically saved before being loaded if it is\n"
|
|
" dirty.\n"
|
|
"\n"
|
|
" See also the /SAC command.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /lj mytask.job /pj\n"
|
|
" - load mytask.job into the in-memory task object, then print all its\n"
|
|
" properties.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_PRINT RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /PJ - print all properties of task\n"
|
|
//" * /PQ - print all properties of queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Print properties and triggers of task or queue.\n"
|
|
" Print properties and triggers of task.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" To print only a single trigger, use PTJ. To print only a \n"
|
|
" trigger string, use PSJ.\n"
|
|
//" To print only a single trigger, use PTJ or PTQ. To print only a\n"
|
|
//" trigger string, use PSJ or PSQ.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /pj\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_PRINTRUNTIME RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /PRJ [<n>] - print next <n> or today's run times of task\n"
|
|
//" * /PRQ [<n>] - print next <n> or today's run times of queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Print next run times of task or queue.\n"
|
|
" Print next run times of task.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <n> - number of run times to print. If omitted, print run times from\n"
|
|
" now till the end of today\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /prj\n"
|
|
" - print remaining run times for today\n"
|
|
"\n"
|
|
" /prq 4\n"
|
|
" - print next 4 run times\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_PRINTSTRING RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /PSJ [<id>] - print trigger strings of <id> or all in task\n"
|
|
//" * /PSQ [<id>] - print trigger strings of <id> or all in queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Print one or all trigger strings of task or queue.\n"
|
|
" Print one or all trigger strings of task.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" [<id>] - 0-based index of trigger to print string for. If omitted,\n"
|
|
" print all trigger strings.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /psj\n"
|
|
" - print all trigger strings\n"
|
|
"\n"
|
|
" /psq 4\n"
|
|
" - print string for trigger 4\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_PRINTTRIGGER RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /PTJ [<id>] - print trigger props of <id> or all in task\n"
|
|
//"* /PTQ [<id>] - print trigger props of <id> or all in queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Print the properties of one or all triggers of task or queue.\n"
|
|
" Print the properties of one or all triggers of task.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" [<id>] - 0-based index of trigger to print. If omitted,\n"
|
|
" print all triggers.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /ptj\n"
|
|
" - print properties of all triggers\n\0"
|
|
//"\n"
|
|
//" /ptq 0\n"
|
|
//" - print properties of first trigger of queue\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_RUN RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /RJ - run task\n"
|
|
//"* /RQ - run queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Run the task or queue.\n"
|
|
" Run the task.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /lj mytask.job /rj\n"
|
|
" - load mytask.job into the in-memory task object, then run it.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_SAVE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SVJ [<file>] - save task to <file>\n"
|
|
//"* /SVQ [<file>] - save queue to <file>\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Write the task or queue to disk.\n"
|
|
" Write the task to disk.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <file> - file to save. If omitted, saves to last file loaded or saved.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
//" Any task or queue object which has an associated filename (because it's\n"
|
|
" Any task object which has an associated filename (because it's\n"
|
|
//" been used with the LJ/LQ, SACJ/SACQ, SNJ/SNQ, SCJ,SCQ commands) will\n"
|
|
" been used with the LJ, SAJ, SNJ, SAC commands) will\n"
|
|
" automatically be saved, if it has been modified, just before JT exits.\n"
|
|
"\n"
|
|
" Therefore these save commands are most useful for doing a save as.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sac a.job /svj b.job\n"
|
|
" - load <tasks folder>\a.job into the in-memory task object, then save\n"
|
|
" it to b.job in the current directory.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_ACTIVATE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
//" /SAC <file> - task or queue file to activate (load).\n"
|
|
" /SAC <file> - task file to activate (load).\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Load the specified task or queue object into the in-memory task or queue\n"
|
|
" Load the specified task object into the in-memory task\n"
|
|
" object.\n"
|
|
"\n"
|
|
" If the in-memory object is dirty, it will be saved first.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <file> - file to load.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sac foo.job\n"
|
|
" - load <tasks folder>\foo.job into the in-memory task object.\n"
|
|
"\n"
|
|
" /sac bar\n"
|
|
//" - load <tasks folder>\bar.job or <tasks folder>\bar.que into the\n"
|
|
" - load <tasks folder>\bar.job into the\n"
|
|
//" in-memory task or queue object.\n\0"
|
|
" in-memory task object.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_ADD RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SAJ <file> - save in-memory task object in tasks\\<file>.\n"
|
|
//" /SAQ <file> - save in-memory queue object in tasks\\<file>.\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Save the in-memory task or queue object in the tasks folder.\n"
|
|
" Save the in-memory task object in the tasks folder.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <file> - filename to save.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" This command acts as a Save As operation. Any changes made to the in-\n"
|
|
" memory object after this command is executed will automatically be saved\n"
|
|
" to <file> before JT exits.\n"
|
|
"\n"
|
|
" The scheduler will return an error if tasks\\<file> exists.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /saj foo.job\n"
|
|
" - save the in-memory task object in <tasks folder>\foo.job.\n\0"
|
|
//"\n"
|
|
//" /saq barbe\n"
|
|
//" - save the in-memory queue object in <tasks folder>\barbe.que.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
#ifndef RES_KIT
|
|
|
|
//
|
|
// Resource Kit version does not permit manipulation of enumerators
|
|
//
|
|
|
|
RC_CREATEENUM RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SCE <id> - scheduler create enumerator in slot <id>=0..%u\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Fill slot <id> with a new task/queue object enumerator.\n"
|
|
" Fill slot <id> with a new task object enumerator.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <id> - slot to fill with new enumerator.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" You must use this command to put an enumerator in a slot before you\n"
|
|
" can use that slot with the /ENC (clone), /ENN (next), /ENR (reset), or\n"
|
|
" /ENS (skip) commands.\n"
|
|
"\n"
|
|
" There are %u slots, numbered 0-%u, which you can use. If you specify\n"
|
|
" a slot number that already contains an enumerator, that enumerator is\n"
|
|
" released before the slot is filled with a new enumerator.\n"
|
|
"\n"
|
|
" All enumerators you created with this command are automatically\n"
|
|
" released before JT exits.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sce 1\n"
|
|
" - create a new enumerator in slot 1.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
#endif // RES_KIT not defined
|
|
|
|
|
|
RC_DELETE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SD <file> - delete tasks\\<file>.\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Delete the specified task or queue object from the tasks folder.\n"
|
|
" Delete the specified task object from the tasks folder.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
//" <file> - filename of task or queue object to delete.\n"
|
|
" <file> - filename of task object to delete.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sd foo.job\n"
|
|
" - delete <tasks folder>\foo.job.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_ENUM RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
//" /SE [<n>] [P] - scheduler enum tasks/queues <n> at a time, [P]rint\n"
|
|
" /SE [<n>] [P] - scheduler enum tasks <n> at a time, [P]rint\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Enumerate all tasks/queues in the tasks folder, optionally printing all\n"
|
|
" Enumerate all tasks in the tasks folder, optionally printing all\n"
|
|
" the properties of each.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" [<n>] - optional value to use for celt in IEnumWorkItems::Next.\n"
|
|
" [P] - optional flag to make JT dump properties of enumerated objects.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" If the [P] flag is not specified, only the names of the enumerated\n"
|
|
" objects are displayed.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /se\n"
|
|
" - print the names of all objects in the tasks folder, one per line.\n"
|
|
"\n"
|
|
" /se p\n"
|
|
" - print all properties of all objects in the tasks folder\n"
|
|
"\n"
|
|
" /se 2\n"
|
|
" - print the names of all objects in the tasks folder, one per line.\n"
|
|
" use 2 for the celt argument to IEnumWorkItems::Next.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_GETCREDENTIALS RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /GC - get credentials (account name only)\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Print the credential account name\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /gc\n"
|
|
" - print the credential account name.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_GETMACHINE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /GM - get target machine\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Print the name of the currently targeted machine\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" This should appear as \\\\machine-name.\n"
|
|
" Note also that the target machine is not persisted across multiple runs of JT.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /gm\n"
|
|
" - print the name of the current target of Scheduler commands.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_NEW RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SNJ <file> - create tasks\\<file> and load it into in-memory task object.\n"
|
|
//" /SNQ <file> - create tasks\\<file> and load it into in-memory queue object.\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Create a new, empty task or queue object in the tasks folder and load it\n"
|
|
" Create a new, empty task object in the tasks folder and load it\n"
|
|
//" into the in-memory task or queue object.\n"
|
|
" into the in-memory task object.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
//" <file> - filename of task or queue object to load.\n"
|
|
" <file> - filename of task object to load.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
//" CAUTION: the in-memory task or queue object is NOT SAVED before being\n"
|
|
" CAUTION: the in-memory task object is NOT SAVED before being\n"
|
|
//" replaced. This allows you to test the behavior of the task or queue\n"
|
|
#ifndef RES_KIT
|
|
" replaced. This allows you to test the behavior of the task\n"
|
|
" object when it is released while dirty.\n"
|
|
#else
|
|
" replaced.\n"
|
|
#endif
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /ctj /snj foo.job\n"
|
|
" - modify the in-memory task object, then create <tasks folder>\foo.job,\n"
|
|
" and load it into the in-memory task object without first saving the\n"
|
|
" existing in-memory object.\n\0"
|
|
//"\n"
|
|
//" /snq barbe\n"
|
|
//" - create <tasks folder>\barbe.que and load it into the in-memory queue\n"
|
|
//" object.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_SETCREDENTIALS RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SC <new acct> <new pswd> - create/set credentials.\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Specify new or change existing task credentials.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <new acct> - new account name. Mandatory.\n"
|
|
" <new pswd> - new password. Specify the string \42\42 for a blank\n"
|
|
" password.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
" The password may also specified as NULL if the account name is set.\n"
|
|
" NULL as a password indicates that the task should be run ONLY if\n"
|
|
" the specified user is logged on at the time the task is set to\n"
|
|
" execute. Users may create tasks of this type only for themselves.\n"
|
|
" Administrators may create them for any user.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sc MYDOMAIN\\joeuser JoesPassword\n"
|
|
" - Specify new credentials.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_SETJOB RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SJ <props> - set task's properties\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Change one or more properties on the in-memory task object.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" <props> - list of task properties.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" The property list has the form <propname> = <value>...\n"
|
|
"\n"
|
|
" The task properties and the form of their values:\n"
|
|
"\n"
|
|
" ApplicationName = <path>\n"
|
|
" Parameters = <string>\n"
|
|
" WorkingDirectory = <path>\n"
|
|
" Comment = <string>\n"
|
|
" Creator = <string>\n"
|
|
" Priority = { Idle | Normal | High | Realtime }\n"
|
|
" MaxRunTime = <int> (in milliseconds)\n"
|
|
" Idle = <int> <int> (wait & deadline, in minutes)\n"
|
|
#ifndef RES_KIT
|
|
" Interactive = { 1 | 0 }\n"
|
|
#endif
|
|
" DontStartIfOnBatteries = { 1 | 0 }\n"
|
|
" KillIfGoingOnBatteries = { 1 | 0 }\n"
|
|
" RunOnlyIfLoggedOn = { 1 | 0 }\n"
|
|
" SystemRequired = { 1 | 0 }\n"
|
|
" DeleteWhenDone = { 1 | 0 }\n"
|
|
" Suspend = { 1 | 0 }\n"
|
|
" HaltOnError = { 1 | 0 }\n"
|
|
" StartOnlyIfIdle = { 1 | 0 }\n"
|
|
" KillOnIdleEnd = { 1 | 0 }\n"
|
|
" RestartOnIdleResume = { 1 | 0 }\n"
|
|
" Hidden = { 1 | 0 }\n"
|
|
" TaskFlags = <int> (in decimal)\n"
|
|
"\n"
|
|
" <string> - must be surrounded by double quotes if it contains spaces\n"
|
|
" <date> - { m/d/y | TODAY }\n"
|
|
" <int> - any integer\n"
|
|
"\n"
|
|
" Case is not significant (i.e., IDLE and Idle are both legal).\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sj command = notepad.exe Priority=idle DeleteWhenDone=1\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_SETMACHINE RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /SM [<machine>] - set machine (NULL = local machine if omitted)\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
" Retarget future ITaskScheduler methods at a remote or the local machine.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" [<machine>] - machine to target, in the form \\\\machine-name.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n"
|
|
" If argument is omitted, command targets local machine. The argument\n"
|
|
" may also explicitly target the local machine. Note that the\n"
|
|
" machine choice is not persisted across invocations of JT.\n"
|
|
"\n"
|
|
"Examples:\n"
|
|
"\n"
|
|
" /sm\n"
|
|
" - target the local machine.\n"
|
|
"\n"
|
|
" !sm bogus /gm\n"
|
|
" - attempt to target a non-existent machine, then print currently\n"
|
|
" targeted machine (to verify that it hasn't changed).\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_SETTRIGGER1 RCDATA
|
|
BEGIN
|
|
"Command:\n"
|
|
"\n"
|
|
" /STJ [id] <props> - set properties of trigger [id] on task\n"
|
|
//" /STQ [id] <props> - set properties of trigger [id] on queue\n"
|
|
"\n"
|
|
"Purpose:\n"
|
|
"\n"
|
|
//" Change one or more properties of a trigger in the in-memory task or queue\n"
|
|
" Change one or more properties of a trigger in the in-memory task \n"
|
|
" object.\n"
|
|
"\n"
|
|
"Arguments:\n"
|
|
"\n"
|
|
" [id] - trigger number. If omitted, trigger 0 is modified.\n"
|
|
" <props> - list of trigger properties.\n"
|
|
"\n"
|
|
"Remarks:\n"
|
|
"\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_SETTRIGGER2 RCDATA
|
|
BEGIN
|
|
"\n"
|
|
"Examples:\n"
|
|
" /stj enddate=today\n"
|
|
" - set the end date of trigger 0 on the in-memory task object to today's\n"
|
|
" date.\n\0"
|
|
//"\n"
|
|
//" /stq 2 MinutesInterval = 20\n"
|
|
//" - set the repetition interval on trigger 2 of the in-memory queue\n"
|
|
//" object to 20 minutes.\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_USAGE1 RCDATA
|
|
BEGIN
|
|
"Microsoft (R) Task Scheduler Command Line Utility\n"
|
|
"Copyright (C) Microsoft Corp 1995-1998. All rights reserved.\n"
|
|
"This executable compiled %s for %s.\n"
|
|
"\n"
|
|
"usage: JT {[options]|[@commandfile]}\n"
|
|
"\n"
|
|
"options:\n"
|
|
"\n"
|
|
" @ <file> - parse file\n"
|
|
" /? [cmd] - display help on [cmd], e.g. /? abj\n"
|
|
" !<cmd> - don't stop if command returns error\n"
|
|
" /ABJ - abort task\n"
|
|
//" /ABQ - abort queue\n"
|
|
//" /AJQ - add task to queue\n"
|
|
#ifndef RES_KIT
|
|
" /CSAGE - convert SAGE tasks to tasks (Win9x only)\n"
|
|
#endif
|
|
" /CTJ [<props>] - create trigger in task\n"
|
|
//" /CTQ [<props>] - create trigger in queue\n"
|
|
" /DTJ [<id>] - delete trigger <id> (default 0) from task\n"
|
|
//" /DTQ [<id>] - delete trigger <id> (default 0) from queue\n"
|
|
#ifndef RES_KIT
|
|
" /EJ [<n> [T|F]] - edit task page <n>, persist changes T/f\n"
|
|
//" /EJQ <a>[<n>[T|F]] - edit task with name <a> in queue\n"
|
|
" /ENC <id1> <id2> - enumerator clone <id1> from <id2> (see SCE command)\n"
|
|
" /ENN <id> <n> - enumerate next <n> items (see SCE command)\n"
|
|
" /ENR <id> - enumerator reset (see SCE command)\n"
|
|
" /ENS <id> <n> - enumerator skip forward by <n> (see SCE command)\n"
|
|
#endif
|
|
" /GC - get credential account name\n"
|
|
" /GM - get target machine\n"
|
|
//" /ISJQ <file> - test <file> to see if it's a task or a queue\n"
|
|
#ifndef RES_KIT
|
|
" /ISJQ <file> - test <file> to see if it is a task\n"
|
|
#endif
|
|
" /LJ <file> - load task object from <file>\n"
|
|
//" /LQ <file> - load queue object from <file>\n"
|
|
" /PJ - print all properties of task\n"
|
|
//" /PQ - print all properties of queue\n"
|
|
" /PRJ [<n>] - print next <n> or today's remaining run times of task\n\0"
|
|
"\0"
|
|
END
|
|
|
|
|
|
RC_USAGE2 RCDATA
|
|
BEGIN
|
|
//" /PRQ [<n>] - print next <n> or today's remaining run times of queue\n"
|
|
" /PSJ [<id>] - print trigger strings of <id> or all in task\n"
|
|
//" /PSQ [<id>] - print trigger strings of <id> or all in queue\n"
|
|
" /PTJ [<id>] - print trigger props of <id> or all in task\n"
|
|
//" /PTQ [<id>] - print trigger props of <id> or all in queue\n"
|
|
" /RJ - run task\n"
|
|
//" /RQ - run queue\n"
|
|
//" /RMJQ <name> - remove task from queue\n"
|
|
//" /SAC <file> - scheduler activate task/queue (load tasks\\<file>)\n"
|
|
" /SAC <file> - scheduler activate task (load tasks\\<file>)\n"
|
|
" /SAJ <file> - scheduler add task (save as tasks\\<file>)\n"
|
|
//" /SAQ <file> - scheduler add queue (save as tasks\\<file>)\n"
|
|
" /SC <acct> <pwd> - set task credentials\n"
|
|
#ifndef RES_KIT
|
|
" /SCE <id> - scheduler create enumerator in slot <id>=0..%u\n"
|
|
#endif
|
|
//" /SD <file> - scheduler delete task/queue (delete tasks\\<file>)\n"
|
|
" /SD <file> - scheduler delete task (delete tasks\\<file>)\n"
|
|
//" /SE [<n>] [P] - scheduler enum tasks/queues <n> at a time, [P]rint\n"
|
|
" /SE [<n>] [P] - scheduler enum tasks <n> at a time, [P]rint\n"
|
|
" /SJ <props> - set task's properties\n"
|
|
" /SM [<machine>] - set machine (NULL = local machine if omitted)\n"
|
|
//" /SQ <props> - set queue properties\n"
|
|
" /SNJ <file> - scheduler new task (replaces in-memory task object)\n"
|
|
//" /SNQ <file> - scheduler new queue (replaces in-memory queue object)\n"
|
|
" /STJ [id] props - set properties of task trigger <id> or 0\n"
|
|
//" /STQ [id] props - set properties of queue trigger <id> or 0\n"
|
|
" /SVJ [<file>] - save task to <file>\n"
|
|
//" /SVQ [<file>] - save queue to <file>\n"
|
|
"\n"
|
|
" For detailed help use: JT /? <command-name>, e.g. JT /? LJ.\n\0"
|
|
"\0"
|
|
END
|