다음 시도 할 수 erything through, 패턴과 일치하지 않습니다. /b
옵션은 단순히 패턴이 줄의 시작 부분에 있어야한다고 말합니다.
2>&1
은 STDERR을 STDOUT으로 리디렉션하며, 말한 것처럼 그 행은 STDOUT이 아닌 STDERR에 기록되기 때문에 필수입니다. "부작용"으로 모든 출력은 이제 STDOUT에 기록됩니다. 당신이 할 필요가 STDOUT에 다른 출력이있는 경우
업데이트, 당신은, 당신은 diff 파일로 STDOUT 리디렉션 일부 파일에 STDERR 리디렉션 인이
latexdiff.exe old.tex new.tex > diff.tex 2> latexdiff.stderr
type latexdiff.stderr | findstr /v /b "DEBUG:"
처럼 뭔가를 할 수 있습니다. 그런 다음 파일을 입력하면 오류 메시지가 표시됩니다.
당신과 같이, 그것의 자신의 배치 파일에 그것을 넣어 할 수 있습니다
:
@echo off
setlocal
REM determine a suitable temporary filename
set error_file=%TEMP%\latexdiff.%RANDOM%.stderr
REM run actual diff and save its exit code for later
latexdiff.exe "%~1" "%~2" > "%~3" 2> "%error_file%"
set error_level=%ERRORLEVEL%
REM dump error messages
type "%error_file%" | findstr /v /b "DEBUG:"
REM remove temporary error file and exit with latexdiff's exit code.
del /q "%error_file%"
exit /b %error_level%
당신은 다음처럼 호출 할 수 있습니다 : latexdiff_wrapper.cmd old.tex new.tex diff.tex
. Appart는 임시 파일 사용에서 단점은 처리하는 동안 오류 메시지가 표시되지 않지만 맨 마지막에 표시된다는 것입니다. 그게 문제가 아니라면, diff가 빠르지 않아야해서는 안됩니다. 그 해결책이 유용 할 것입니다.
브릴리언트. 하나의 추가 어려움을 제외하고 나는 생각하지 않았다. 'latexdiff.exe'는 출력 (diff 파일)을 stdout에 씁니다. 출력 파일을 명시 적으로 지정하는 옵션이없는 것 같습니다. 그래서 사용해야하는 구문은'latexdiff old.tex new.tex> diff와 같습니다. tex'. 해결책을 넣을 때마다 (예를 들어'diff.tex' 다음에) 디버그 라인은 diff.tex 파일로 끝납니다 (작성한대로 모든 것이 이제 stdout으로 리디렉션됩니다). 이 문제를 해결하는 방법을 모르겠습니다. – Rabarberski
업데이트 된 솔루션이 완벽하게 작동합니다. 올바른 errorlevel을 설정하는 것은 좋은 방법입니다. 고마워요! – Rabarberski