Windows 计划任务成功但返回结果 0x1

Posted

技术标签:

【中文标题】Windows 计划任务成功但返回结果 0x1【英文标题】:Windows Scheduled task succeeds but returns result 0x1 【发布时间】:2013-08-24 14:23:18 【问题描述】:

我在 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。”

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

【问题讨论】:

您的问题解决了吗?我设置为使用您所说的所有内容运行 python 3 任务,但仅在用户登录时。任务成功,我看到它执行。由于某种原因,我也只是收到 (0x1) 错误。 是的,我解决了。问题是在批处理文件中使用命令。我有一个 POPD 的最终命令,因为没有前面的 PUSHD,所以没有工作要做。 【参考方案1】:

似乎很多用户都对此有疑问。以下是一些修复:

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

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

    “以最高权限运行”(测试两个选项) “无论用户是否登录都运行”(测试两个选项) 检查“配置为”是否设置为您机器的操作系统版本 确保运行程序的用户帐户具有正确的权限

【讨论】:

这个答案无疑为我节省了一天 - 对于其他人来说,我的 Windows 2008 服务器实例具有 Windows 2008 和 Windows 2008 R2 两种选项。我认为这会有所不同。 您关于“start in”参数的第一个要点为我解决了这个问题。非常感谢。 谢谢,它有效。顺便说一句:windows 是一个完全病态的平台,它迫使用户使用内置工具(运行浏览脚本,然后手动删除引号并拆分文件名和目录的完整路径)。 在我在文件名前添加.\ 之后,第一个项目符号为我修复了它。 我认为可执行文件位于程序/脚本区域。【参考方案2】:

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

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

【讨论】:

这被证明是有用的,因为当以这种方式设置弹出窗口时,我玩了一个游戏,当错误发生时屏幕再次消失之前尝试点击打印屏幕。我能够看到我的文件路径是错误的。【参考方案3】:

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

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

put z:\folder\file.ext

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

put \\server\folder\file.ext

【讨论】:

谢谢。在我找到你的答案之前浪费了 2 个小时!【参考方案4】:

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

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

标签

    操作:删除引号/双引号

程序/脚本

开始

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

    一般:

以最高权限运行

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

现在可以了!

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

【讨论】:

对我不起作用。我得到 0x1 但成功的任务所以 idk【参考方案5】:

对于 Powershell 脚本

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

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

安排愉快!

【讨论】:

Python脚本也一样吗? 在“操作”->“程序/脚本”下我使用了 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe【参考方案6】:

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


问题是批处理文件抛出了一个静默错误。最后的 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

【讨论】:

【参考方案7】:

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

【讨论】:

【参考方案8】:

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

Set-ExecutionPolicy Unrestricted

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

【讨论】:

谢谢,这是我的问题! @labreuer 很高兴为您提供帮助!【参考方案9】:

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

【讨论】:

【参考方案10】:

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

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

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

在它无法启动之前采样

"x:\Update & pull.bat"

重命名后

"x:\Update_and_pull.bat"

【讨论】:

【参考方案13】:

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

【讨论】:

【参考方案14】:

事实证明,在批处理中使用 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

【讨论】:

如果 WinSCP 报告错误(非零退出代码),它这样做是有原因的。您只是通过添加一个虚拟命令来隐藏问题。

以上是关于Windows 计划任务成功但返回结果 0x1的主要内容,如果未能解决你的问题,请参考以下文章

window server 2008 批处理单独运行可以,加入任务计划无法运行

我的 C# 应用程序将 0xE0434352 返回到 Windows 任务计划程序,但它没有崩溃

Python - 任务计划程序 0x1

Windows远程命令执行(Schtask方法)

windows计划任务执行mysqldump大数据表不成功小数据表没问题

windows2008定时计划任务未执行成功,报:因为用户未登陆到网络,因此未执行所有操作是啥原因导致?求助