我无法 运行 在登录时通过任务调度程序自动执行脚本。既不是 bat 也不是 exe。他们自己 运行

I can't run autoit script through the task scheduler while being logged in. Not as a bat nor as an exe. They do run on their own

我正在尝试在 1:00am 处执行 运行 的任务,运行 是一个停止我的 Minecraft 服务器的自动脚本。当我通过任务计划程序单击 运行 时,它什么也没做(但我注意到 cmd 在任务栏上以黄色高亮显示)。

我已经试过把它编译成一个exe文件,也试过制作一个蝙蝠(蝙蝠刚才说"cd [location]"下面有au3。我也试过把蝙蝠运行制作成exe)

任务调度程序确实可以处理其他任务和 bat(我有一个 bat 可以在登录后启动服务器),但由于某些原因它不能 运行 au3 或 exe

这是代码

    If WinExists("C:\Windows\system32\cmd.exe") Then
WinActivate("C:\Windows\system32\cmd.exe")
Send("sr save")
Send("Say El servidor se cerrara en 10 minutos. Ultimo backup")
Sleep(1000000)
Send("say El servidor cerrara en 1 minuto, ultimo guardado pronto")
Send("{Enter}")
Sleep(30000)
Send("say El servidor cerra en 30 segundos")
Sleep(20000)
Send("say El servidor cierra en 10 segundos.")
Sleep(10000)
Send("stop")
Send("{Enter}")
Sleep(10000)
Send("A")
EndIf

编辑:我的错

任务调度程序设置为打开autoit脚本(或我试过一次的批处理或exe)(C:/Users/Username/Downloads/Server/Shutdown server.au3(或批处理或exe))点击运行按钮不起作用,所以我设置的时间无关紧要 (1:00am)。我试过 运行 以最高权限设置任务调度程序,也使任务调度程序 运行 在 windows 10 模式下运行。

我可能会尝试降低服务器占用的 ram 数量,看看这是否是 ram 过载的问题。但我对此表示怀疑。如果我在服务器打开时使用 microsoft edge,计算机甚至 运行s 流畅(java 参数设置为从我的计算机中为服务器占用 3GB。我的计算机是 4GB。我注意到大部分因为它只是三个朋友之间的小型创意服务器,所以占用的时间不到 2GB)。注意:这是一台我打算用来做我的世界服务器的电脑。

Edit2:另一个编辑,这不是我的代码。我是从 reddit 上的某个人那里拿来的,那个人提供给人们使用它。但我确实理解它(虽然我对编码了解不多)

那么首先如何正确创建任务:

Task scheduler->Create task->

Name: AutoitServer

Configure for: < Your OS >

然后设置应该触发它的内容(在您的案例时间 01:00 AM)

Click Triggers->New Trigger

Begin the task: On schedule

Choose: Daily-> Start 7/31/2019 01:00:00 AM

最后那个任务应该做什么(你必须把那个au3脚本编译成EXE)

Click ACTIONS-> New

Action: Start a program

Program/script: < Path to COMPILED autoit >
example: C:\Users\Bob\Desktop\myAutoitServer.exe

...最后创建。

我也对你的代码做了一些修改:

$cmdPath= "C:\Windows\system32\cmd.exe"

if(Not WinExists($cmdPath)) Then
   Run($cmdPath)
Else
      WinActivate($cmdPath)
EndIf

WinWaitActive("[CLASS:ConsoleWindowClass]", "", 20)
If Not @error Then
   Send("sr save")
   Send("Say El servidor se cerrara en 10 minutos. Ultimo backup")
   Sleep(1000000)
   Send("say El servidor cerrara en 1 minuto, ultimo guardado pronto")
   Send("{Enter}")
   Sleep(30000)
   Send("say El servidor cerra en 30 segundos")
   Sleep(20000)
   Send("say El servidor cierra en 10 segundos.")
   Sleep(10000)
   Send("stop")
   Send("{Enter}")
   Sleep(10000)
   Send("A")
EndIf

PS:为什么那个脚本不能作为 .au3 运行?!我认为即使安装了 autoit,任务调度程序也无法识别这种类型的脚本,因此最好将 au3 编译为 exe 并使用该 EXE。