Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

martin

Re: error code ??

The if not errorlevel 0 never happens. Because if errorlevel 0 means if errorlevel >= 0 (read if /?). Hence your condition is the same as if errorlevel < 0, what is never true. Use if errorlevel 1, as all the examples on this site do.
landog

error code ??

I have a batch file that runs a WinSCP script on a Windows box via a scheduled task.
The objective is to transfer the files via SFTP and then move the files to another folder. If the files fail to transfer, I do not want them to be moved.

The batch file:
cd \transfer

if exist *.txt GOTO run
exit
:run
winscp.com /script=transfer.scr /xmllog=C:\transfer\!S-!Y-!M-!D-!T.xml
IF NOT ERRORLEVEL 0 GOTO Fail
move *.txt c:\transferred
exit
:Fail

The transfer script:
option batch abort

option confirm off
option transfer ascii
open session
put *.txt
close
exit


One recent transfer failure resulted in this message in the XML log:
  <failure>

    <message>Network error: Connection refused.</message>
  </failure>

However, WinSCP must have returned with an exit of '0' - as the files were moved to the "transferred" folder.

Should WinSCP return with an error of '1' after the connection to the destination was refused?

Is there a better approach to get the behaviour I am seeking?