我有一个计划任务,它启动一个robocopy每小时运行一次的批处理脚本。每次它运行时,桌面上都会弹出一个带有 robocopy 输出的窗口,我真的不想看到。
我设法通过运行预定的作业来使窗口最小化
cmd /c start /min mybat.bat
Run Code Online (Sandbox Code Playgroud)
但这每小时给我一个新的命令窗口。鉴于cmd /c“执行字符串指定的命令然后终止” ,我对此感到惊讶- 我一定误解了文档。
有没有办法在不弹出 cmd 窗口的情况下运行批处理脚本?
scripting windows command-line-interface scheduled-task windows-command-prompt
我在 Windows 2008 R2 上的任务计划程序中有一些任务。我以管理员身份创建它们,并以管理员身份登录。我没有简单的方法来重命名任务。我能做的唯一方法是将任务配置导出到 XML 文件并重新导入到新任务,在那里更改名称,然后删除旧任务。有更容易的方法吗?
我有一个非常占用 CPU 和 IO 的计划任务,需要大约四个小时才能运行(构建源代码,如果你好奇的话)。该任务是一个 Powershell 脚本,它生成各种子进程来完成其工作。当我从 Powershell 提示符以交互方式运行相同的进程时,使用相同的用户帐户,它运行大约两个半小时。该任务在 Windows Server 2008 R2 上运行。
我想知道的是,为什么作为计划任务运行需要这么长时间 - 超过一个小时。我注意到的一件事是任务调度程序以低于正常优先级运行,因此当我的任务开始时,它继承了相同的降低优先级。但是,我已经更新了脚本以将 Powershell 进程优先级设置回正常,并且它仍然需要同样长的时间。
有人知道这两种情况有什么不同吗?我已经排除了处理器和 IO 负载的差异——这个任务是系统唯一的用途,所以没有其他运行可以竞争资源。
我希望能够在特定时间安排服务器重启,但不是定期重启。如何在不添加和删除 cron 条目的情况下执行此操作?
我想安排一个命令在 Linux 机器上重新启动后运行。我知道如何执行此操作,以便在每次重新启动后使用@rebootcrontab 条目始终运行该命令,但是我只希望该命令运行一次。运行后,应将其从要运行的命令队列中删除。我本质上是在 Windows 世界中寻找与RunOnce等效的 Linux 。
如果重要:
$ uname -a
Linux devbox 2.6.27.19-5-default #1 SMP 2009-02-28 04:40:21 +0100 x86_64 x86_64 x86_64 GNU/Linux
$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-suse-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
$ cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 0
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的、可编写脚本的方法来做到这一点?
Windows Server 2008 R2(完全修补)
我正在尝试运行计划任务以将特定类型的文件从 C:\Windows\Temp 移动到 E:\Foo_blah_blah_blah_blah\Foo2 并且由于某种原因我收到以下错误:
任务计划程序无法为用户“FOOBOX\Administrator”启动“\Move Temp Files”任务的实例“{fe0f148a-cece-44a0-a4d1-914aaf21daa8}”。附加数据:错误值:2147942402
知道为什么会这样吗?
额外细节:
move添加参数:C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\如果我move C:\Windows\Temp\*.foo E:\Foo_blah_blah_blah_blah\Foo2\从 Windows 命令提示符运行相同的命令,它工作正常。
我错过了什么?
我有一个使用 Windows Server 2012 上的任务计划程序在系统启动时启动的程序。即使计算机自动重新启动,该程序也必须启动。
Administrator 是用于启动程序的帐户,为任务选中“无论用户是否登录都运行”选项。
问题在于,当有人最终使用远程桌面连接以管理员身份登录时,界面(程序窗口)被隐藏。
据我了解,使用 Task Scheduler 无法解决此问题。
我该如何解决这个问题?
这应该是一个相当普遍的问题,但我无法通过搜索网络找到任何东西。我很惊讶微软在他们的调度程序中允许这样的限制。我可以制作一个 VBScript 或一些在启动时运行并启动程序的东西,然后在用户实际登录时可以看到它吗?
其他想法?
(顺便说一下,我不想制作一个单独的 GUI 程序来连接到原始程序。如果我不必在用户登录时终止已经运行的程序然后启动,我也更喜欢它再说一遍。)
windows windows-server-2008 startup scheduled-task windows-server-2012
我们有一个 2012 年的服务器,它有大约 20 个用于监控的计划任务。我们已经构建了一个 2016 年的服务器来替换它,当我将任务移到新服务器时,我遇到了一个问题。我们的大部分任务每隔几分钟运行一次。
在 Server 2012 中,我们将任务安排在当天上午 1200 点(过去的时间)开始,并每 X 分钟重新发生一次。任务将在下一个预定时间开始。完美的。
在 Server 2016 中,过去开始的计划不会运行。所以我们不得不安排它在未来开始。这很好,直到您重新启动。现在开始时间已经过去了,它不会运行。它甚至不会注册失败的运行。Next Run Time 列显示它应该运行但没有运行。

除了创建两个触发器,一个在未来启动,另一个在重启时启动(我们不想这样做,因为某些任务应该只在指定的时间运行),还有更好的方法吗?这似乎是一个错误。2012 版本效果很好。
有一个解决方法。创建一个无限期运行的一次性计划。这就像您期望的那样在重新启动后起作用。我知道这对于“奇怪”的计划来说不是很好,但对于我们想要每 3 分钟或其他时间运行的事情来说效果很好。
我可以像这样从命令行创建一个任务:
schtasks /create /tn SomeTask /tr "do.bat arg1 arg2" /sc ONCE /st 00:00:00 /sd 01/01/1991
Run Code Online (Sandbox Code Playgroud)
现在我需要删除它。但是该命令需要确认,我不知道如何从 BATCH 文件(bat/cmd)中执行此操作。
C:\> schtasks /delete /tn ContextSwitchTask
WARNING: Are you sure you want to remove the task "ContextSwitchTask" (Y/N)?
C:\> echo Y | schtasks /delete /tn ContextSwitchTask
WARNING: Are you sure you want to remove the task "ContextSwitchTask" (Y/N)? Y
ERROR: Invalid input.
Type "SCHTASKS /DELETE /?" for usage.
Run Code Online (Sandbox Code Playgroud)
问:如何删除定时任务并强制是?
在 Windows Server 2008 R2 或 Windows 2012 等中使用任务计划程序...
这个设置有什么区别:

并且此设置在同一任务上:

一个优先于另一个吗?他们有冲突吗?
scheduled-task ×10
windows ×4
linux ×2
batch-file ×1
performance ×1
scripting ×1
startup ×1
task ×1