继续将错误级别设置为9009

时间:2014-06-03 08:50:38

标签: batch-file errorlevel

有一个奇怪的问题,首先是使用批处理文件来安装应用程序..安装工作正常,没有任何问题。

如果错误级别为NEQ 0,我在批处理结束时将错误代码输出到文件,但输出始终为9009.

从网上搜索9009,它说无法找到可执行文件,但肯定可以在应用程序安装正常时使用。

以下是我要安装的一个批处理脚本的示例:

  IF exist %windir%\LogFolder\BoxSync4.0x86.txt ( goto eof ) ELSE ( goto BoxSyncInstall     )

  :BoxSyncInstall
  msiexec /i "\\servername\InstallFolder\BoxSync\SyncMSI32.msi" /qn
  if %ErrorLevel% EQU 0 (
  >>"\\servername\gpolog\BoxSync4.0x86.csv" echo "%computername%","%date%","%Time%","%ErrorLevel%","Box Sync 4.0 x86 Installed"
  >>"%windir%\gpologs\BoxSync4.0x86.txt" echo "Box Sync 4.0 x86 Installed"
  ) 
  else if %ErrorLevel% NEQ 0(
  >>"\\servername\gpolog\BoxSyncErrorsx86.csv" echo "%computername%","%date%","%Time%","%ErrorLevel%","Error trying to install/upgrade to    BoxSync4.0x86"
  )

  :eof

有没有人有任何想法为什么我可能会不断收到此错误?

由于

米高扬

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

问题是语法问题,您需要在0(之间留出空格,如下所示:

IF exist %windir%\LogFolder\BoxSync4.0x86.txt ( goto eof ) ELSE ( goto BoxSyncInstall     )

:BoxSyncInstall
msiexec /i "\\servername\InstallFolder\BoxSync\SyncMSI32.msi" /qn
if %ErrorLevel% EQU 0 (
>>"\\servername\gpolog\BoxSync4.0x86.csv" echo "%computername%","%date%","%Time%","%ErrorLevel%","Box Sync 4.0 x86 Installed"
>>"%windir%\gpologs\BoxSync4.0x86.txt" echo "Box Sync 4.0 x86 Installed"
) 
else if %ErrorLevel% NEQ 0 (
>>"\\servername\gpolog\BoxSyncErrorsx86.csv" echo "%computername%","%date%","%Time%","%ErrorLevel%","Error trying to install/upgrade to    BoxSync4.0x86"
)

:eof

编辑:如果安装程序需要管理员权限且这是Win8 +操作系统,则可能存在安全限制,在这种情况下,请将msi安装程序复制到%TEMP%文件夹并运行它从那里。发生这种情况的原因是,当您在管理员模式下运行命令提示符时,它会限制使用unc路径(出于“安全”原因)。

另请尝试pushdpopd,因为@dbenham不断提醒我们:LINK

答案 2 :(得分:1)

发现问题所在,它位于ELSE IF之下,因为我看到安装脚本运行时没有沉默。

删除ELSE后,脚本运行正常。再次感谢您的帮助,因为您引导我使用其他技巧。