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 任务计划程序,但它没有崩溃