2017-03-23 1 views
0

오류 : 이번에는 예기치 않은 설치가있었습니다.배치 파일 : 현재로서는 예기치 않은 설치가되었습니다

CMD에서이 스크립트를 실행할 때 응용 프로그램을 설치 한 후 강조 표시된 (굵게) echo 문에 오류가 발생합니다. @ECHO OFF를 제거하려고했지만 작동하지 않는 것 같습니다. 제발 제안하십시오. 다음은

코드입니다 :

@ECHO OFF 
REM Setting the Package Name 
SET PACKAGENAME=OracleCorporation-CrystalBall-11.1.4100.0-EN 
SET LOGDIR=%Systemdrive%\Logs\CrystalBall 
SET BATCHLOG=%LOGDIR%\%PACKAGENAME%_BatchInstall.log 
IF NOT EXIST "%Systemdrive%\Logs\CrystalBall" MD "%Systemdrive%\Logs\CrystalBall" 
ECHO %DATE% %TIME% >> %BATCHLOG% 
rem Setting the LOGDIR path 
SET LOG1=%LOGDIR%\OrcaleCorporation-OracleCrystalBall-EN_Install.log 
REM Setting the current directory path 
cd /d %~dp0 
:Crystal 
ECHO Starting installation of Oracle Crystal Ball (32-bit) >> %BATCHLOG% 
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{878FE383-4153-4C76-9F17-F1277FBBD670} /v DisplayName /REG:32 
IF %ERRORLEVEL% EQU 0 GOTO :End 
start /wait "inst" "%CD%\Setup\Inst\setup.msi" /qn /L*V %LOG1% 
**ECHO completed installing Oracle Crystal Ball (32-bit) with %Errorlevel% >> %BATCHLOG%** 
If %Errorlevel% NEQ 0 (
    If %Errorlevel% NEQ 3010 (
     If %Errorlevel% NEQ 1641 (
      ECHO Error occured Ending Oracle Crystal Ball (32-bit) Installation >> %BATCHLOG% 
      goto :End 
     ) 
    ) 
) 
:End 
ECHO Completed Installation of Oracle Crystal Ball (32-Bit) at %DATE% %TIME% >> %BATCHLOG% 
+0

오류는 해당 줄로 인해 발생합니까 아니면 해당 줄에 도달하지 못합니까? 이전 줄에서'/ qn'을'/ qf'로 변경하고 유용한 출력을 얻었는지 확인하거나'% LOG1 %'파일의 내용을 조사합니다. – BACON

+0

수정 구슬이 설치되었습니다. ** ECHO ON **에 지쳤을 때 에코 라인에서 위의 오류가 발생했습니다. 그러나/qn은 자동 설치를위한 것이며 qf가 프롬프트를 표시하는 반면 자동으로 응용 프로그램을 설치해야합니다. 로그 파일 상태가 다음과 같은지 확인했습니다. ** Oracle Crystal Ball (32 비트) - 설치 작업이 성공적으로 완료되었습니다. ** – Lesvita

답변

1

오류가 일치하지 않습니다, 당신은 표시하지만 일부 선 이상에서 :

ECHO Error occured Ending Oracle Crystal Ball (32-bit) Installation >> %BATCHLOG% 

는 폐쇄 )IF 코드 블록을 닫습니다 paranthese (너무 일찍). 따라서 뒤의 단어 (Installation)는 오류 메시지를 제공하는 명령으로 구문 분석됩니다.

ECHO Error occured Ending Oracle Crystal Ball (32-bit^) Installation >> %BATCHLOG% 

(참고 : 어떤 사람들은 또한 기술적으로 필요하지 않습니다 ^),하지만 대칭/가독성을 위해 탈출을 좋아 ...)

당신은 캐럿이 ) "탈출"해야

+0

나는 괄호 안에있을 것 같아요. 그러나 괄호가있는 이전의'ECHO' 행은 실패하지 않았기 때문에 나는 그 것이 문제가되어서는 안된다고 생각했습니다. 이것은 의미가 있습니다. +1. – BACON

+0

첫 번째'echo'는 코드 블록에 없으므로')'는 "이미 저장 중"입니다. – Stephan

+0

예, 꽤 잘 돌아갔습니다. 정말 고맙습니다. – Lesvita