批处理开始在Windows计划程序中运行,但不执行所有行

时间:2014-11-06 13:55:34

标签: windows batch-file task scheduler

我有一个非常简单的批处理备份一组文件夹。我手动运行批处理没有任何问题,但是当我安排它运行时,它开始运行良好但永远不会完成。它会创建适当的日期文件夹,并在复制任何文件夹/文件之前停止。

以下是.bat

的代码
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set "dt=%%a"
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"

set datestamp=%MM%-%DD%-%YYYY%
echo datestamp: "%datestamp%"

md F:\MyArchives\%datestamp%
xcopy U:\Kristi\Project\*.* F:\MyArchives\%datestamp%\ /f/s

我将它设置为以我的用户名运行,无论我是否登录。我把它设置为运行最高权限。它是每天凌晨1点45分。我已经检查过Wake the computer来运行这个任务。我正在运行Windows 7企业版

当我查看Scheduler中的历史记录时,它会说明以下内容:

  • 在计划程序上触发的任务
  • 任务引擎收到启动任务的消息
  • Tast Started
  • 已开始行动
  • 创建任务流程
  • 行动已完成
  • 任务已完成

我不知所措。我已经广泛搜索了这个网站,我也搜索了它,直到我脸色发青。

我还导出了Task xml文件,它列在下面:

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2014-11-04T10:50:29.1301378</Date>
    <Author>AMERICAS\jfges</Author>
    <Description>Backs up the Projects folder to the Passport Drive every night.  This will create a dated folder that will need to be deleted eventually for space.  Batch is to run every night</Description>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2014-11-04T01:45:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>AMERICAS\jfges</UserId>
      <LogonType>Password</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <AllowHardTerminate>false</AllowHardTerminate>
    <StartWhenAvailable>true</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>true</WakeToRun>
    <ExecutionTimeLimit>PT8H</ExecutionTimeLimit>
    <Priority>7</Priority>
    <RestartOnFailure>
      <Interval>PT10M</Interval>
      <Count>3</Count>
    </RestartOnFailure>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Users\jfges\Desktop\backup.bat</Command>
    </Exec>
  </Actions>
</Task>

我试图向你们提供我见过的所有人在我在这里阅读的类似问题所要求的一切。我真的希望有人能够帮助我。

我能想到的另一件事就是我每晚都要备份大约17G的数据。我不认为那会重要,因为它甚至没有开始复制数据,但我想我会提到它。

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:1)

可能有一些原因不起作用 1.尝试从cmd运行批处理以查看它是否有效(我假设您已经这样做了)
2. xcopy来自/来自netword drive need mapping/privileges set - 所以这样做 3.尝试在文件夹/路径数据周围添加“”,因为这可能会有所帮助,即使是短名称(即使名称中没有空格)
4.如果没有用户登录,您可能需要使用runas(如果是xcopy则不确定,但如果我没记错,则需要这样做)
5.最后但并非最不重要的是,检查事件查看器eventvwr.msc是否有错误。希望你能找到出错的迹象。如果没有,make the task visible并尝试重复

如果还在挣扎,"schedule the batch"在Windows启动时运行(看看任务管理器是否弄乱了什么)
如果全部失败,请相应地更新问题(即使用您收集的新数据/信息)。