![使用具有特定 ID 的 AT 命令创建计划任务](https://linux22.com/image/491082/%E4%BD%BF%E7%94%A8%E5%85%B7%E6%9C%89%E7%89%B9%E5%AE%9A%20ID%20%E7%9A%84%20AT%20%E5%91%BD%E4%BB%A4%E5%88%9B%E5%BB%BA%E8%AE%A1%E5%88%92%E4%BB%BB%E5%8A%A1.png)
我有一个计划任务,我将通过脚本部署它。
该任务需要与用户桌面交互,因此我认为我需要使用 AT。
我还希望能够在任务中的某些内容需要更新或不再需要该任务时从计算机中删除该任务。
我不想在执行此操作时删除所有其他计划任务,因此我希望我的脚本具有特定的 ID 号,以便以后可以删除。我已查看了 AT 命令的文档,但找不到有关如何创建具有特定 ID 的计划任务的文档。(http://support.microsoft.com/kb/313565)
有没有办法创建一个具有特定 ID 的计划任务,或者有没有更好的方法来实现我的目标?
客户端是 Windows-XP 计划任务运行一个小型可执行文件。所有客户端都是域的一部分,我有域管理员权限。
答案1
根据文档,您无法创建特定的任务 ID(就像您无法为进程创建特定的 PId 一样),但您可以在任务运行时找到其任务 ID(通过在命令行中输入“at”),然后将其删除。
您还可以使用 WMI 对象以编程方式获取/删除计划任务 ID(请查看此链接)。
答案2
虽然您无法指定与 AT 命令一起使用的 ID,但您可以使用此脚本来识别您的 AT 计划任务正在使用的 ID,以便您可以从批处理文件中删除它:
Set sCommand=ScheduledCommand.cmd
:LOOP
AT>AT.txt
findstr /I %sCommand% AT.txt>nul
If %ErrorLevel%==1 Goto CONTINUE
FOR /F %%i IN ('findstr /I %sCommand% AT.txt') DO (set ID=%%i)
AT %ID% /D
Goto LOOP
:CONTINUE
DEL AT.txt>nul
用法: 只需将 sCommand 设置为您想要删除的命令的名称。