Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file Windows任务计划程序没有';无法启动批处理文件任务_Batch File_Scheduled Tasks - Fatal编程技术网

Batch file Windows任务计划程序没有';无法启动批处理文件任务

Batch file Windows任务计划程序没有';无法启动批处理文件任务,batch-file,scheduled-tasks,Batch File,Scheduled Tasks,我有一个批处理文件,代码如下,用于停止和启动SQL报表服务: net stop "SQL Server Reporting Services (MSSQLSERVER)" timeout /t 10 net start "SQL Server Reporting Services (MSSQLSERVER)" 我已将计划任务设置为每天运行,它当前作为具有最高权限集的系统运行。我已经在操作中设置了“在文件夹中开始”选项,并且所有内容似乎都设置正确。但是当我运行任务时,似乎什么也没有发生,它

我有一个批处理文件,代码如下,用于停止和启动SQL报表服务:

net stop "SQL Server Reporting Services (MSSQLSERVER)" 

timeout /t 10

net start "SQL Server Reporting Services (MSSQLSERVER)"
我已将计划任务设置为每天运行,它当前作为具有最高权限集的系统运行。我已经在操作中设置了“在文件夹中开始”选项,并且所有内容似乎都设置正确。但是当我运行任务时,似乎什么也没有发生,它说任务已经运行了,但我看不到服务已经按照预期重新启动


有人能告诉我我错过了什么吗?谢谢

请确保正确设置了'Start in''Program/script'选项。如果您的文件地址是:C:\Temp\foo.bat,请将“开始”选项设置为“C:\Temp”,将“程序/脚本”选项设置为“foo.bat”

要设置“开始”选项:右键单击任务计划程序中的任务
>属性>操作>编辑。

如果仅此一项不起作用,请尝试将.bat文件移动到具有基本权限的目录(例如,可能是共享目录)


我的.bat文件位于一个有一些限制权限的文件夹中,因此只有我的用户帐户才能访问它。即使我已设置任务计划程序以使用我的凭据,它仍然失败。将.bat文件移动到另一个目录可以解决问题。

设置'Program/script'-->文件.bat
cd D:\wherever\yourBatch\fileIs

将路径的其余部分(file.bat)设置为“开始于”

我也遇到了同样的问题。我认为这是一个特权问题。如果您选择了“仅当用户登录时运行”,则不会发生这种情况


希望你现在已经明白了,但我想在这里注册,让下一个在这个问题上浪费时间的人知道。

在这个愚蠢的问题上浪费了很多时间

在批处理文件第一行的批处理文件所在位置添加一个cd命令,看看它是否解决了问题

cd D:\wherever\yourBatch\fileIs

提示:请使用绝对路径,相对路径在理想情况下不应该是一个问题,但调度程序很难理解它们。

也有同样的问题,请确保选中“仅在用户登录时运行”,至少这是使我的bat文件再次激活的原因

解决方案是,您应该取消选中(停用)选项“仅当用户登录时运行”


更改后,它开始在我的机器上工作。

一个解决方案是,您可以使用'.vbs'文件运行'.bat'文件,并且可以在windows计划程序中运行此vbs文件

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("cron_jobs.bat"), 0, True

您可以这样做,我希望它能解决您的问题。

这是一个非常老的线程,但问题仍然是一样的-

我尝试了很多方法,但都不奏效-

  • 在路径中添加了开始(不带引号)
  • 已删除程序/脚本中批处理文件的完整路径 场等
  • 在程序中添加了
    C:\Windows\system32\cmd.exe
    ,并添加了
    /C
    将myscript.bat
    添加到参数字段
  • 这就是我的工作-

    程序/脚本字段-cmd

    添加参数-/c myscript.bat

    从:myscript.bat的路径开始尝试以下代码:

    Batchfile.bat:

    cd c:\batchfilepath
    net stop "SQL Server Reporting Services (MSSQLSERVER)" 
    timeout /t 10
    net start "SQL Server Reporting Services (MSSQLSERVER)"
    

    对我来说,这是一个触发问题。默认情况下,它应该在“触发器”选项卡中的计划中
    。我在登录时选择了
    ,然后等待运行任务。正如它的名字在登录时所说,这意味着你必须注销并登录

    试着把它放在日程表上,每分钟都发射一次


    对我来说,问题是由
    引起的。bat
    包括一张
    cd
    到网络驱动器。这失败了,随后对该网络驱动器中的程序的调用没有任何作用


    我通过在任务的编辑操作窗口的添加参数字段中添加
    >log.txt
    解决了这个问题。

    我遇到了同样的问题,没有一个解决方案有效。当我查看历史时,我发现了问题所在。我有这个警告

    Task Scheduler did not launch task "\TASK_NAME"  because instance "{34a206d4-7fce-3895-bfcd-2456f6ed6533}"  of the same task is already running.
    
    在“设置”选项卡中,有一个下拉选项用于“如果任务已在运行,则应用以下规则:”默认为“不要启动新实例”。根据实际需要执行的操作,将其更改为“并行运行新实例”或“停止现有实例”


    我知道这是一个旧的线程和多种解决方案都很好,这正是我的工作。希望能有帮助

    我的应用程序无法通过“任务计划程序”启动

    “事件查看器”中的错误为:
    System.IO.DirectoryNotFoundException

    “任务调度器”尝试使用“系统”用户运行此应用程序。问题是没有为“系统”用户映射“网络驱动器”。因此,我所做的是,在启动应用程序之前创建了一个“.bat”文件并映射了“网络驱动器”:

    net use T: \\172.20.2.215\images
    cd C:\MyApplication
    start MyApplication.exe
    

    因此,请首先检查日志:“事件查看器”->Windows日志->应用程序

    我的问题是由OneDrive引起的。OneDrive正在同步我的批处理文件所在的文件夹,这似乎阻止了任务计划程序执行它。(微软没有人测试过这种东西吗?)


    无论如何,通过将批处理文件移动到OneDrive之外的文件夹,批处理文件可以由任务计划程序启动。

    在支持运行方式的Windows系统上。首先,通过从作为该用户运行的命令行启动程序来独立运行程序,如下所示

    runas/user:cmd

    然后,在新的命令行中,
    cd
    指向任务启动器启动程序的路径,并键入完整参数,例如

    cd D:\Scripts\
    ,然后执行

    C:\python27\pthon.exe script.py


    任何被任务调度器抑制的错误都应该出现在命令行输出中,并使调试变得更容易

    我在Windows服务器操作系统上运行这个。 我工作了几个小时,却发现