【问题标题】:run curl from windows task scheduler automatically自动从 Windows 任务计划程序运行 curl
【发布时间】:2017-03-26 03:59:05
【问题描述】:

我有一个运行 curl localhost:port 的简单单行 bat 文件。我的 curl.exe 与我没有全局安装的 bat 位于同一文件夹中。如果我双击它运行良好,如果我右键单击任务计划程序并选择运行任务它也运行良好。它还说它成功完成了“计划任务”,但没有任何反应(我确信这一点,因为我正在检查脚本运行时应该更新的数据,并且在计划/自动场景下不会发生)。在阅读了大量用户问题后,我尝试以两种方式进行配置(全部在 5 分钟内更新):

普通方式 Action: Start a Program Program/script: C:\p\updater.bat Start in: C:\p\

其他方式 Action: Start a Program Program/script: cmd Add arguments: /c start "" "C:\p\updater.bat"

我已经设置了 bat 和包含文件夹的权限,以允许所有用户/等。自动触发时都不起作用,也不会出错。我在 Server 2008 和 Windows 10(我的操作系统)模式下尝试过。如果我右键单击运行任务,两者都可以工作,而不是自动运行,有什么想法吗?

【问题讨论】:

    标签: windows schedule


    【解决方案1】:

    预定脚本的默认工作目录是 %Windows%\system32。尝试在 updater.bat 中添加第一行:

    cd c:\p\
    

    为了诊断,您可以在 bat 文件中为您的命令添加输出重定向:

    echo Script Started >> c:\p\log.txt
    curl SomeCommand SomeCommand >>c:\p:\curloutput.txt
    echo Script Ended >> c:\p\log.txt
    

    并在执行脚本后检查文件 log.txt 和 curloutput.txt

    【讨论】:

    • 感谢您的帮助。我的脚本现在包括 cd 和 echos。如果我手动运行脚本,它可以工作并记录 Started Ended。调度程序似乎没有启动脚本。奇怪的是,它现在更新了下一次运行时间,但最后一次运行没有更新,脚本已启用并“准备就绪”。我只是尝试添加另一个重复触发器,看看是否有帮助。如果我在 Windows 10 上,我应该在 win 10 还是 Server 2008 模式下运行?
    • 如果在 c:\p\log.txt 中看不到“Script Started”,则表示: 1)调度程序无法启动脚本。 2)脚本没有必要的权限写入您的目录
    • 尝试从您的用户执行任务。打开任务属性。查找:“然后使用此任务,使用以下用户帐户”。按“更改用户或组”,找到您的帐户。就我而言,它是迈克尔。按确定。您的帐户名称将包含类似“YouComputerName/YourAccountName”的文本。您必须使用“无论用户是否登录都运行”。 !!!取消选中!!! “不存储密码”。按确定。系统将询问您的密码。输入它。
    • 所有这些都是有用的 cmets 都 ++ed。原始答案对我的问题是正确的,包括 bat 中的 CD 修复了它无法正确执行。此后我通过创建另一个触发器并删除原始触发器解决了这个问题,我不知道为什么禁用/启用不起作用,但它对我有用,我会称之为解决。
    • 正如@edencorbin 所写,同样适用于我。重新启用作业不起作用,我必须创建新作业,然后它才能起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2017-08-22
    • 2015-08-08
    • 1970-01-01
    • 2015-10-19
    • 2010-09-22
    相关资源
    最近更新 更多