사용. 문제는 DOS가 오류 코드를 반환하는 방법에 있으며 특히 IF
및 ECHO
과 같은 일부 명령은 그렇지 않습니다. (인포매티카는 DOS에서 픽업 리턴 코드가 DOS에서 echo %ERRORLEVEL%
로 볼 수있다, 나는 편의를 위해 여기에 이름 DOS를 사용합니다 비록 윈도우가이 엄격 올바른 is'nt 아래)
실행 연속으로 다음 명령을 :
REM "cd" sets ERRORLEVEL => ERRORLEVEL is set to 0
cd c:\
echo %ERRORLEVEL%
REM "echo" does not set ERRORLEVEL => ERRORLEVEL is left unchanged
echo.bob >> c:\filename.txt
echo %ERRORLEVEL%
REM "echo" does not set ERRORLEVEL => ERRORLEVEL is left unchanged
echo.bob >> c:\thisdirdontexist\filename.txt
echo %ERRORLEVEL%
제 CD
따라서는 여전히 상기 (로 또는 IF 테스트없이) 리턴 코드를 변경하지 않고 ECHO
다음 0
이 경우, 리턴 코드를 0으로 설정하더라도 마지막 ECHO
을하지만 실패합니다.
첫 번째 CD
명령이 오류를 반환하면;
@echo off
REM "cd" sets ERRORLEVEL => ERRORLEVEL is set to 1
cd xxxxxx
echo %ERRORLEVEL%
는 모든 후속
ECHO
1 반환 및 인포매티카는 둘 다 실패합니다.
Informatica의 각 세션 종료 성공 명령이 자체 cmd-shell에서 실행되기 때문에 여전히 이상하다고합니다. 따라서 모든 명령에 대한 초기 ERRORLEVEL
은 항상 0이어야합니다. 그 사실을 설명 할 수는 없지만 불행히도 UNIX에서 실행될 때 Informatica에서 이것을 실제로 테스트하지는 않지만 이것이 적어도 문제의 일부라고 확신합니다.
문제를 해결하려면 속성 탭에서 "명령 실패시 작업 실패"옵션을 설정해야합니다. 이로 인해 인포매티카는 cmd/c
옵션을 사용하고 Informatica가 올바른 리턴 코드를 설정 했으므로 Informatica가 오류 (또는 성공)를 올바르게 선택할 수 있어야합니다. 그래도 제대로 작동하지 않으면 직접 명령을 변경해보십시오.
cmd /c "IF 1==1 echo.uncle >> c:\filename.txt"
welcome to stackoverflow! –
감사! 나는 항상이 장소를 검색한다. 마지막으로 아직 답변되지 않은 질문을 찾아서 – Taejang
에 가입해야만했습니다. 권리 문제에 대해 추측 할 수 있습니다. yoy가 수동으로 시도했을 때 실제로 informatica 통합 서버 사용과 동일한 로그온을 사용하여 서버에 로그인 했습니까? – whetstone