安排一次并尽快执行任务的命令行是什么?

安排一次并尽快执行任务的命令行是什么?

我知道调度任务。但我不知道如何使用它们来快速执行一次任务。我读过一篇很快命令,但是我的Windows版本中没有这样的命令。

我计划将此命令包含在批处理文件中,因此我无法对开始时间进行硬编码。

答案1

schtasks 命令可以立即运行定义的任务。

如何使用 Schtasks.exe 在 Windows Server 2003 中安排任务

Schtasks/运行

立即启动计划任务。运行操作将忽略计划,但使用任务中保存的程序文件位置、用户帐户和密码立即运行任务。

句法:

schtasks /run /tn TaskName [/s computer [/u [domain\]user /p password]] /?

因此只需定义任务,然后在需要时立即运行它。

答案2

在...之上工作基思的回答满足您的需求:

timeout /t X ; psexec -i -s Y

在哪里

  1. timeout取代 Windows 7 中的睡眠功能。
  2. X是个等待的秒数由 定义/t/nobreak如果您想禁止用户继续,请添加。
  3. psexec来自 Microsoft SysInternals允许您运行交互式(-i作为本地系统-s),请注意您必须启动一次 psexec 以接受首次 EULA,或者添加-accepteula
  4. Y是你的命令。

runas不允许您以本地系统启动,这就是为什么要使用 工具用于与流程相关的任务。
启动计划任务或服务对我来说似乎太麻烦了……


例如,帕特里克的回答可以简单地重写为:

timeout /t 120 ; psexec -i -s calc.exe

答案3

这将在 2 分钟内启动 calc.exe。更改

set /A START_MIN=%%j + 2

行来改变时间间隔。

for /f "delims=:. tokens=1,2" %%i in ("%time%") do (
set /A START_HOUR=%%i
set /A START_MIN=%%j + 2
)

IF %START_MIN% GEQ 60 (
call :AdjustStartTime
)

IF %START_MIN% LSS 10 SET START_MIN=0%START_MIN%

SCHTASKS /Create /SC ONCE /TN "My Scheduled Task Name" /RU "" /TR "C:\Windows\System32\Calc.exe" /ST %START_HOUR%:%START_MIN%

:AdjustStartTime
SET /A START_HOUR=%START_HOUR% + 1
SET /A START_MIN=%START_MIN% - 60
GOTO:EOF

答案4

Patrick S. 的回答满足了我的需求。

不过我想说的是,引号后面不需要加上,/TR但不知什么原因,这似乎破坏了我的脚本。

删除后,他的脚本运行良好!

我的用法是在 Outlook 规则中。调用一个脚本,并使用插件 (messagesave) 将电子邮件写入驱动器。这是从我的办公室电脑发布到网站上,并且调用批处理的原始脚本需要在写入文件之前终止。我花了很长时间才弄清楚如何适当地延迟计划任务,即使在访问“schtasks”TechNet 页面之后也是如此。

相关内容