WinScp가 파일을 동기화 한 후 메시지를 에코하는 방법 디렉토리에 업데이트되어 다운로드되면 명령 프롬프트에

WinScp를 사용하여 로컬 및 원격 파일을 동기화하고 Windows 작업 스케줄러로 예약했습니다. 하루에 한 번 스크립트를 실행하고 원격 파일이 새 파일이거나 업데이트 된 경우 파일을 다운로드합니다.

스크립트 코드는 다음과 같습니다

option include data.csv
synchronize local d:\ /home/dir

그러나 지금하고 싶은 것은 원격 파일이 새 파일이고 로컬 디렉토리에 업데이트되어 다운로드되면 명령 프롬프트에 메시지를 표시하는 것입니다.

이 아이디어는 사용자가 매일 파일을 검사하여 새로운 업데이트가 있는지 확인할 필요가 없다는 것입니다.

명령 프롬프트에서이 메시지를 통해 알림을받습니다.

이 스크립트에서 무엇을 추가하여 최신 버전의 파일이 다운로드되었는지 확인하고 다른 메시지를 표시하지 않으면 아무것도 수행하지 않습니까?

편집하다:

지금 나는 여기있다

다음과 같은 코드가 포함 된 배치 파일을 만들었습니다.

winscp.com /console /script=dwn_script.txt
@echo off
if errorlevel 1 goto error
echo The new version of data.csv file has been downloaded. Please check your local disk
:error

그러나 winscp가 “Nothing to sync”라고 말하고 winscp가 최신 버전의 파일을 다운로드 할 때 errorlevel항상 0두 가지로 설정 됩니다.

누구든지 어떤 변수가 “Nothing to sync”상태와 성공적인 파일 다운로드 상태를 차별화하는지 명확히 할 수 있습니까?

차이가 나는 if condition경우 새 파일이 다운로드되었다는 메시지를 사용자에게 표시 할 수 있습니다.



답변

WinSCP는 종료 코드를 사용하여 동기화 할 파일이없는 시나리오를 구별하지 않습니다. 이는 오류로 간주되지 않기 때문입니다.

대신 XML 로깅을 활성화하고 로그에서 <download>태그 를 검색 할 수 있습니다 .
https://winscp.net/eng/docs/logging_xml


답변