【问题标题】:How to launch a .cmd file using Task Scheduler?如何使用任务计划程序启动 .cmd 文件?
【发布时间】:2018-06-28 14:44:18
【问题描述】:

我有一个文件夹,其中包含一个 PowerShell 脚本和一个执行它的 .cmd 文件(除其他外)。

我希望任务计划程序启动 Run.cmd,但它不起作用。手动启动 Run.cmd 有效,单独启动 .ps1 也是如此。以下是我设置任务调度程序的方法:

附加信息:

  • 脚本备份我们的网络交换机

  • .ps1 本质上会引发一些非关键错误(不会停止脚本)

  • Run.cmd 是这样的:

    @echo off
    powershell.exe -ExecutionPolicy Bypass -file "BackupSwitch.ps1"
    %SystemRoot%\System32\tree.com "%~dp0backups" /f
    TIMEOUT /t 10
    

【问题讨论】:

  • 这个问题可能更适合 ServerFault 或 SuperUser,但是... 你收到任何错误消息吗?任务是否正在使用服务帐户运行,并且该帐户在计算机上是否具有“批量登录”权限?
  • 就我个人而言,我会将所有内容都放入 powershell 脚本中,然后进行安排。
  • 没有错误,表示运行成功,但实际上并没有备份任何内容。我以管理员身份登录到我们的服务器,并为所有用户和管理员设置了“批量登录”权限
  • Start in (optional): 中有机会输入位置,可能包括路径C:\!tools\Network_Script_Backups 并更改您的脚本以使用-file ".\BackupSwitch.ps1""backups" /f 会更容易。作为完成Start in (optional): 位置的替代方法,您可以进行这两项更改,而是添加一个新行2CD /D "C:\!tools\Network_Script_Backups" 作为选项。

标签: powershell batch-file scheduled-tasks taskscheduler system-administration


【解决方案1】:

bat 文件正在运行,但由于您使用的是相对路径与 powershelltree.com,因此路径不正确,因为 CMD 将默认以 C:\Users\USERNAME 开头。

要更正此问题,您只需将 C:\!tools\Network_Script_Backups 添加到 Start-in 字段即可。

【讨论】:

    猜你喜欢
    • 2014-02-28
    • 2021-06-30
    • 2020-04-25
    • 2013-10-19
    • 2016-07-18
    • 2022-07-15
    • 2012-01-08
    • 2012-04-28
    • 1970-01-01
    相关资源
    最近更新 更多