不幸的是,我在其他线程中找不到适合我的解决方案。
我试图通过批处理文件使用任务调度程序运行vb脚本,当我手动启动vbs和bat文件时,它们都可以正常工作,但在任务调度程序中不能。我尝试了多种组合(我也尝试直接启动vbs),但似乎没有任何效果。.bat和.vbs都直接在C中:\
VBS文件:
Set WshShell = WScript.CreateObject("WScript.Shell")
Set Word = CreateObject("Word.Application")
Set Tasks = Word.Tasks
For Each Task in Tasks
If Task.Visible Then
if inStr(Task.name, "(Formal module) - DOORS") then
WshShell.AppActivate Task.name
WshShell.SendKeys "^s"
WScript.Sleep 2000
WshShell.SendKeys "%e"
WScript.Sleep 200
WshShell.SendKeys "e"
WScript.Sleep 200
WshShell.SendKeys "r"
WScript.Sleep 200
WshShell.SendKeys "%e"
WScript.Sleep 100
WshShell.SendKeys "e"
WScript.Sleep 100
WshShell.SendKeys "r"
WScript.Sleep 100
Else
End If
End If
Next
Word.Quit
Set Word = CreateObject("Word.Application")
Set Tasks = Word.Tasks
For Each Task in Tasks
If Task.Visible Then
if inStr(Task.name, "(Formal module) - DOORS") then
WshShell.AppActivate Task.name
WshShell.SendKeys "^s"
WScript.Sleep 2000
WshShell.SendKeys "%e"
WScript.Sleep 200
WshShell.SendKeys "e"
WScript.Sleep 200
WshShell.SendKeys "r"
WScript.Sleep 200
WshShell.SendKeys "%e"
WScript.Sleep 100
WshShell.SendKeys "e"
WScript.Sleep 100
WshShell.SendKeys "r"
WScript.Sleep 100
Else
End If
End If
Next
Word.Quit
批处理文件:
%windir%\SysWoW64\cmd.exe /C "c:\windows\system32\cscript.exe //B //nologo C:\unlock_doors.vbs"
计划的Tesk导出:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2017-04-04T12:38:00.000</Date>
<Author>CCANET\tczimmer</Author>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<StartBoundary>2017-04-04T00:00:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>CCANET\tczimmer</UserId>
<LogonType>Password</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT5M</Interval>
<Count>2</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<Command>C:\unlock_doors.bat</Command>
<WorkingDirectory>C:\</WorkingDirectory>
</Exec>
</Actions>
</Task>
我遇到了一个类似的问题,任务调度程序只是不会执行我的vbs。我所做的是创建一个单独的“timer.vbs”文件,该文件具有无限循环,检查当它到达6:00 AM时它将执行我的脚本的时间。所以你在这里有几个选择,但是在你的情况下,为了让你不必重写任何代码,你可以创建一个timer.vbs文件,仍然在c:\根本身
'timer.vbs
Set objShell = Wscript.CreateObject("Wscript.Shell")
Do
Wscript.Sleep 1000
If Time() = TimeValue("12:00:01 AM") Then 'Or modify to the time you need
objShell.Run "c:\windows\system32\cscript.exe /B /nologo C:\unlock_doors.vbs"
End If
Loop
只要此脚本在开启的主机上运行,它就应该在指定的TimeValue执行。
因此,基本上打开一个cmd提示符并在该命令提示符下运行cscript timer.vbs
,并最小化该ommand提示符,然后对该主机进行正常操作。
我在任务计划程序中计划了一个批处理文件。如果我从CMD手动运行此批处理文件,它将很好地完成所有工作,大约需要20分钟。但是,如果我在任务计划程序中计划它,它在开始运行时立即完成,并显示结果是“成功完成”。(VBS 没有运行...)此批处理文件将调用 2 个 vbs 脚本来运行。我不确定任务计划程序是否有问题,或者只是批处理文件在那里得到错误的代码。 我在日志文件中得到了错误信息 我只从任务调度器得
我有一个批处理文件,其中包含以下代码以停止和启动SQL报告服务: 我已经设置了每天运行的计划任务,它目前以SYSTEM的形式运行,并设置了最高权限。我在操作上设置了文件夹中的开始选项,通常一切似乎都设置正确。但是当我运行任务时,似乎什么都没有发生,它说任务已经运行,但我看不到服务已经按预期重新启动。 有人能告诉我我错过了什么吗?
我有一个包含4个命令的批处理脚本,如下所示 当我双击批处理文件时,它运行得很好。当我尝试从命令提示符运行批处理文件时,它没有看到要删除的. csv文件,我不确定这是为什么,但我认为这对我的目的并不重要。 当我从task scheduler手动运行任务时,它会截断数据库中的表并删除现有的csv文件,但没有创建新文件,这使我相信它会卡在.vbs文件上。 我试着用。vbs脚本,并将路径传递给。xls和。
我正在尝试自动登录到2008 R2服务器上的一组RDP客户端,当从桌面双击批处理文件时,下面的批处理工作正常,但是当将.bat文件设置为作为任务调度程序中的任务运行时,什么都没有发生 计划任务被设置为在管理员帐户下运行(只有一个可用),并且(开始于)可选字段也被设置为“C:\Users\Administrator\Desktop”。
在我的工作中,我们设置了任务调度程序,定期启动java程序来读取邮件。该任务计划每分钟运行一次,它调用启动java程序的. bat文件。 现在问题来了。大约一个月一次,jave.exe过程不能正常结束,所以下一分钟当它试图运行时,我得到: 任务计划程序无法启动用户“NT 颁发机构\系统”的“\XXX 作业”任务。其他数据:错误值:2147750687。 然后我每分钟都会收到这条消息,直到我从任务管