我有一个包含以下代码的批处理文件,用于停止和启动SQL Report服务:
net stop "SQL Server Reporting Services (MSSQLSERVER)"
timeout /t 10
net start "SQL Server Reporting Services (MSSQLSERVER)"
我已将计划任务设置为每天运行,它当前以SYSTEM身份运行,并设置了最高权限。我在动作上设置了文件夹选项的开始,一切似乎都正确设置。但是当我运行任务时似乎没有任何事情发生,它表示任务已经运行但我看不到该服务已按原样重新启动。
有人可以指导我找到我所缺少的东西吗?感谢
答案 0 :(得分:65)
确保正确设置'开始'和'程序/脚本'选项。如果您的文件地址是:C:\ Temp \ foo.bat,请将'start in'选项设置为'C:\ Temp',将'program / script'选项设置为'foo.bat'。
设置“开始”选项:右键单击任务计划程序> Properties > Actions > Edit.
如果单独这样做不起作用,那么尝试将.bat文件移动到具有基本权限的目录(例如,可能是共享目录)。
我遇到一个问题,我的.bat文件位于一个对其具有一定限制权限的文件夹中,因此只有我的用户帐户才能访问它。即使我已将任务调度程序设置为使用我的凭据,它仍然失败。将.bat文件移动到另一个目录排序问题。
答案 1 :(得分:11)
在这个愚蠢的问题上浪费了很多时间!
在批处理文件的第一行添加cd命令到批处理文件所在的位置,看看它是否解决了问题。
cd D:\wherever\yourBatch\fileIs
提示:请使用绝对路径,相对路径理想情况下应该不是问题,但调度程序很难理解它们。
答案 2 :(得分:5)
我遇到了同样的问题。我相信这是一个特权问题。如果您有"仅在用户登录时运行"选中,然后就不会发生。
你现在已经想出来了,但是我想在这里为下一个浪费时间的人注册。
答案 3 :(得分:4)
这是一个非常古老的线程,但问题仍然是相同的 -
我尝试过多件事,但都没有奏效 -
C:\Windows\system32\cmd.exe
,并将/c
myscript.bat
添加到参数字段。这对我有用 -
程序/脚本字段 - cmd
添加参数 - / c myscript.bat
开始于:myscript.bat的路径
答案 4 :(得分:3)
答案 5 :(得分:2)
设置'程序/脚本' - >的 file.bat 强> 设置'开始'其余路径(file.bat)
答案 6 :(得分:2)
出现同样的问题,请确保选中“仅在用户登录时运行”,至少这是使我的bat文件再次活动的原因。
答案 7 :(得分:2)
我遇到了同样的问题,没有一个解决方案有效。当我查看历史记录时,我发现了问题。我有这个警告
Task Scheduler did not launch task "\TASK_NAME" because instance "{34a206d4-7fce-3895-bfcd-2456f6ed6533}" of the same task is already running.
在设置选项卡中有一个下拉选项"如果任务已在运行,则适用以下规则:"默认为"不要启动新实例"。将其更改为"并行运行新实例"或"停止现有实例"基于你真正需要做的事情。
我知道它是一个老线程,多种解决方案在这里很好,这对我有用。希望能帮助到你。
答案 8 :(得分:1)
尝试以下代码:
Batchfile.bat:
cd c:\batchfilepath
net stop "SQL Server Reporting Services (MSSQLSERVER)"
timeout /t 10
net start "SQL Server Reporting Services (MSSQLSERVER)"
答案 9 :(得分:1)
我的应用程序无法通过"任务计划程序"。
启动"事件查看器"中的错误是:pd.DataFrame.duplicated
"任务计划程序"尝试使用" SYSTEM"运行此应用程序用户。问题是网络驱动器"未映射到" SYSTEM"用户。所以我做的是,我创造了一个" .bat"文件并映射"网络驱动器"在开始申请之前:
System.IO.DirectoryNotFoundException
因此,请先检查您的日志:"事件查看器" - > Windows日志 - >应用
答案 10 :(得分:1)
对我来说,问题是由.bat
包含cd
到网络驱动器引起的。这失败了,然后后来调用该网络驱动器中的程序什么也没做。
我通过在任务的修改操作窗口的添加参数字段中添加> log.txt
来解决此问题。
答案 11 :(得分:1)
一种解决方案是您可以使用'。vbs'文件运行'。bat'文件,然后您可以在 windows scheduler中运行此vbs文件。
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("cron_jobs.bat"), 0, True
你可以这样做,我希望它能解决你的问题。
答案 12 :(得分:1)
解决方案是您应取消选中(取消激活)选项“仅在用户登录时运行”。
更改后,它开始在我的机器上运行。
答案 13 :(得分:0)
对我来说这是触发问题。默认情况下,它应该在触发器选项卡中On a Schedule
。我选择了At log on
然后我正在等待运行任务。正如其名称在登录时所说,意味着您必须注销并登录。
尝试将其放在附表上并每分钟开火。
答案 14 :(得分:0)
我的问题是由OneDrive引起的。 OneDrive正在同步我的批处理文件所在的文件夹,这似乎阻止了Task Scheduler执行它。 (MS上没有人测试这种东西吗?)
无论如何,通过将我的批处理文件移动到OneDrive不在的文件夹中,任务计划程序都可以启动该批处理文件。
答案 15 :(得分:0)
在支持runas
的Windows系统上。首先,通过以该用户身份运行的命令行启动程序来独立运行程序,例如
runas /user:<domain\username> cmd
然后,在新命令行中,cd
到您希望任务启动器启动程序并键入完整参数的路径。
cd D:\Scripts\
,然后执行
C:\python27\pthon.exe script.py
任务计划程序抑制的任何错误都应该出现在命令行输出中,并使调试起来更容易。
答案 16 :(得分:0)
最适合我的配置:
在设置中,只有2个复选框标记为: