53

我在 Windows 2008 R2 服务器上有一个计划任务。该任务包括一个 Start In 目录条目。任务运行,它运行的批处理文件完成了它应该做的事情。当我从命令提示符运行批处理文件时,我看不到任何错误。问题是“上次运行结果”是0x1(不正确的函数调用)。

我确实有一次得到了这个错误的 DOS 语句IF EXISTS file.txt DO (Copy file.txt file1.txt),该语句通过删除该DO语句得到了更正。当前的批处理文件没有显示任何错误或警告。

为什么我会得到0x1结果?

运行的批处理文件:

PUSHD \\JUKEBOX4\Archives\CallRecording
REM only move csv and wma together.  wma should be created last.
IF NOT EXIST C:\CallRecording (MKDIR C:\CallRecording)
FOR /f %%f IN ('DIR /b *.wma') DO (
    IF EXIST %%~nf.csv (MOVE /Y %%~nf.* C:\CallRecording\)
)
POPD
CD /D "C:\Program Files (x86)\Olim, LLC\Collybus DR Upload"
CollybusUpload.exe
POPD

有关计划任务设置的信息:

  • 要运行的程序:C:\Program Files (x86)\Olim, LLC\Collybus DR Upload\CallRecordingUploadFromH.cmd
  • 开始于:C:\Program Files (x86)\Olim, LLC\Collybus DR Upload
  • 运行用户是否登录,最高权限。

历史画面,任务完成条目

“任务计划程序已成功完成任务“\呼叫录音从 NH 上传到门户”,实例“{1449ad42-2210-427a-bd69-2c15e35340e6}”,操作“C:\Windows\SYSTEM32\cmd.exe”,返回码为 1。 "

任务计划程序的第一个屏幕显示“成功”的“运行结果”

4

14 回答 14

59

似乎很多用户都遇到了这个问题。以下是一些修复:

  • 右键单击您的任务>“属性”>“操作”>“编辑”| 仅将文件名放在“程序/脚本”下,不带引号,并且只将目录放在“开始于”下,如所述,再次不带引号。

  • 右键单击您的任务>“属性”>“常规”| 使用以下任何/所有测试:

    1. “以最高权限运行”(测试两个选项)
    2. “无论用户是否登录都运行”(测试两个选项)
    3. 检查“配置为”是否设置为您机器的操作系统版本
    4. 确保运行程序的用户帐户具有正确的权限
于 2015-12-18T19:05:30.593 回答
6

我发现我勾选了“无论用户是否登录都运行”,它返回一个静默失败。

当我更改勾选“仅在用户登录时运行”时,它对我有用。

于 2014-04-29T04:00:17.073 回答
5

我有同样的问题。它只是一个批处理文件,在手动启动时工作,但不能作为计划任务工作。

批处理文件中有这样的驱动器号:

put z:\folder\file.ext

似乎您不应该使用驱动器号,它们与创建它们的用户绑定 - 对我来说,这个小小的改变使它再次起作用:

put \\server\folder\file.ext
于 2016-07-28T08:28:28.177 回答
3

对于 Powershell 脚本

在多个 Windows 服务器上使用参数调度 Powershell 脚本时,我已经多次看到这个问题。解决方案一直是使用 -File 参数:

  1. 在“操作”->“程序/脚本”下键入:“Powershell”
  2. 在“添加参数”下,不要只输入“C:/script/test.ps1”,而是使用 -File“C:/script/test.ps1”

安排愉快!

在此处输入图像描述

于 2019-07-04T06:52:19.500 回答
3

Windows 任务调度程序 (Windows server 2008r2)

对我来说同样的错误(上次运行结果:0x1)

标签

  1. 行动:删除引号/双引号

程序/脚本

开始于

即使路径名中有空格...

  1. 一般的:

以最高权限运行

为您的操作系统配置...

现在它工作了!

上次运行结果:操作成功完成

于 2017-07-12T19:49:00.803 回答
1

可能不是 OP 问题的原因;对我来说,问题是由于我的程序调用了一个 SQL 函数,而设置 windows 任务的服务帐户没有所需的 SQL 权限。这也给出了 0x1

于 2021-10-20T17:15:26.043 回答
1

就我而言,这是一个编码问题。我们想启动现有的批处理文件,结果是“返回代码 1 ”,并且没有执行所需的操作。我偶然发现批处理文件在记事本中显示为一个使用 UTF-8 编码的文件(实际上没有任何原因,因为我们在文本中没有特殊字符)。我将它保存为 ANSI,它为我们解决了问题。可能是文件中的一种编码损坏,禁止任务计划程序和 cmd.exe 打开文件,尽管它在记事本中显示正确。

于 2021-07-04T07:14:36.123 回答
1

我发现问题与 Powershell 无法运行脚本有关,如果您遇到这种情况,这里是解决方案。

于 2016-07-14T13:42:12.557 回答
1

这个答案最初是由提问者编辑到问题中的。


问题是批处理文件抛出了一个静默错误。最后的 POPD 没有做任何工作,并且在没有打开 PUSHD 的情况下被错误地调用。

损坏的代码:

CD /D "C:\Program Files (x86)\Olim, LLC\Collybus DR Upload" CALL CollybusUpload.exe POPD

正确代码:

PUSHD "C:\Program Files (x86)\Olim, LLC\Collybus DR Upload" CALL CollybusUpload.exe POPD
于 2016-07-05T15:09:28.457 回答
0

在我们的服务器上,这是系统路径的问题。在升级 PHP 运行时(使用名称包含版本号的安装目录)并更新系统变量中的路径后,PATH我们得到了 status 0x1。系统重新启动更正了该问题。重新启动Task Manager服务也可能做到了。

于 2017-08-21T17:34:18.350 回答
0

我正在将 PowerShell 脚本运行到任务调度程序中,但我忘记在提升的 PowerShell 控制台中启用执行策略以不受限制:

Set-ExecutionPolicy Unrestricted

之后,错误消失(0x1)。

于 2017-06-03T07:48:50.220 回答
0

对我来说,问题是正在运行的 PowerShell 脚本#Requires -RunAsAdministrator位于顶部,这意味着它需要以管理员身份在提升的命令提示符下运行,但计划任务设置为运行的用户不是本地计算机上的管理员。因此,即使Run with highest privileges在计划任务中签入,我仍然必须让用户成为计算机上的管理员。一旦我这样做了,脚本就会按预期运行。

于 2021-10-12T04:23:51.480 回答
0

只是在这里遇到了同样的问题。在我的情况下,bat文件有空格“”从文件名中删除空格并更改为下划线后,bat文件工作

在它不会开始之前采样

“x:\更新和拉.bat”

重命名后

“x:\Update_and_pull.bat”

于 2019-11-21T03:56:30.867 回答
-1

事实证明,使用 winscp 作为批处理中最后一件事的 FTP 下载调用导致了该问题。插入 echo 命令后,它工作正常。猜猜问题的根源可能是winscp.exe,它没有正确地向操作系统报告当前任务的结束。

del "C:\_ftpcrawler\Account Export.csv" /S /Q

"C:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script="C:\_isource\scripte\data.txt"

echo Download ausgeführt am %date%%time% >> C:\_isource\scripte\data.log
于 2017-09-19T06:43:24.923 回答