batch-filecmdwinscp

WinSCP script not executing in batch file


I have a script that is executing perfectly on command prompt. If I copy and paste the script directly to the command window then it is working fine, but when save it like Windows batch file and run it it is hanging.

option batch abort
cd \program files\winscp\ 
winscp.com /command "open HennTest:Nate82@data.test.com" /privatekey=C:\HennTest\VCS\HennTest_key_putty.ppk
option confirm off
get /*.csv C:\HennTest\VCS\
close
exit

It is connecting to the server but not executing the get statement when using like batch but it is working correctly when I copy/paste it directly. I need to use it like batch since I want to automate the script to download the files.


Solution

  • Your are combining WinSCP commands and Windows commands into one file. That cannot work. The batch file stops on a call to the winscp.com and waits for it to finish. WinSCP on the contrary does not know that the batch file even exist, so it cannot read its commands from there.

    See WinSCP FAQ Why are some WinSCP scripting commands specified in a batch file not executed/failing?

    This works:

    cd \program files\winscp\ 
    
    winscp.com /command ^
        "open sftp://HennTest:Nate82@data.test.com -privatekey=C:\HennTest\VCS\HennTest_key_putty.ppk" ^
        "get /*.csv C:\HennTest\VCS\" ^
        "close" ^
        "exit"
    

    It makes use of the WinSCP command-line switch /command that you can use to specify WinSCP commands on its command-line.


    Note that I've corrected few other mistakes: