O WinSCP não distingue o cenário com nenhum arquivo para sincronizar usando o código de saída, pois não considera isso como um erro.
Em vez disso, você pode habilitar o log XML e pesquisar o log da tag <download>
. link
Eu sincronizei o arquivo local e remoto usando WinScp e agendado com o Windows Task Scheduler que executa o script uma vez por dia e baixa o arquivo se o arquivo remoto for novo ou atualizado, caso contrário, não faça nada.
Aqui está o código de script
option include data.csv
synchronize local d:\ /home/dir
Mas agora O que eu quero fazer é ecoar a mensagem no prompt de comando se o arquivo remoto é novo e atualizar e baixado no diretório local.
A ideia por trás disso é que o usuário não precisa verificar o arquivo diariamente para ver se há novas atualizações.
Assim, eles serão notificados por meio desta mensagem no prompt de comando.
O que eu adiciono neste script para verificar se a versão mais nova do arquivo foi baixada e ecoar alguma mensagem, caso contrário, não faço nada?
EDITAR:
Agora estou aqui -
Eu criei um arquivo em lote que contém o código como este: -
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
Mas o errorlevel
é sempre definido como 0
em ambos os casos quando o winscp diz "Nothing to synchronize" e quando o winscp faz o download da nova versão do arquivo.
Alguém pode esclarecer quais variáveis diferenciam o status "Nada para sincronizar" e o download bem-sucedido do arquivo?
Se eu obtiver essa diferença, posso colocá-lo em if condition
e mostrar a mensagem ao usuário de que o novo arquivo foi baixado.
O WinSCP não distingue o cenário com nenhum arquivo para sincronizar usando o código de saída, pois não considera isso como um erro.
Em vez disso, você pode habilitar o log XML e pesquisar o log da tag <download>
. link