배치 스크립트 도움말이 필요합니다.

배치 스크립트 도움말이 필요합니다.

실행 파일을 다시 시작하는 배치 스크립트를 만들었고 오류를 표시하는 로그 파일로 출력하려고 합니다.

내 스크립트는

@echo on

timeout /t 03

set logfile=c:\users\administrator\desktop\C4W\Logs\status.log
echo starting system.exe at %date% %time% >> %logfile%
"./system.exe" -connection "sql instance" -model "model number" -username "admin" -password "" -id 2  >> %logfile%

Pause

Exit 0

보시다시피 내 실행 파일은 SQL 인스턴스와 SQL 데이터베이스 내의 모델에 연결됩니다. 배치 파일을 실행할 때 화면에 "입력에 기본 64가 아닌 문자, 2개 이상의 패딩 문자 또는 패딩 사이에 공백이 아닌 문자가 포함되어 있으므로 입력이 유효한 Base-64 문자열이 아닙니다"라는 오류가 표시됩니다. 문자”. 하지만 내 로그 파일에는 이 오류가 표시되지 않고 날짜와 시간이 표시된 상태로 실행 파일이 실행되었다는 것만 표시됩니다. >>& %logfile%에 & 기호를 넣으려고 했지만 cmd 창에 오류 메시지가 표시되지 않고 내 로그에도 표시되지 않습니다.

누구든지 내가 어디로 잘못 가고 있는지 볼 수 있습니까?

답변1

명령의 오류 출력을 표준 출력과 함께 로그 파일로 리디렉션하려면 >>logfile.txt 2>>&1다음과 같이 명령에 추가합니다.

yourcommand.exe >>logfile.txt 2>>&1

2>>&1로그 파일로 리디렉션하기 위해 StdOut 및 SteErr 스트림을 "결합"하려면 구문이 필요합니다 .

추가 정보

관련 정보