VanDyke Software

Automation Tip


How To Use vsftp Batch Mode To Automate File Transfers

This tip shows how to use the batch mode of the vsftp command-line utility – part of the VanDyke ClientPack – to automate file transfers. It takes advantage of three capabilities new for vsftp in ClientPack version 6.1:

  • The -b <filename> command-line argument
  • The include <filename> command
  • The error command

The include command mentioned below can also be used within the SecureCRT SFTP tab.

To use vsftp batch mode, you create a batch file that contains sftp commands. Then you invoke vsftp using the -b switch to load the commands from the file.

The ClientPack version 6.1 adds three new commands that simplify the process of creating and using batch files to automate file transfer operations.

vsftp -b <filename> is a command-line option that instructs vsftp to use batch mode, loading commands from a file rather than interactive input. When -b is used, vsftp reads from the specified file, executes all commands in the file, and then exits after the last command.

The vsftp include <filename> command can be used to start reading commands from a batch file. It can be used from the interactive prompt, or from within a batch file. Once all the commands in the included file have been executed, vsftp resumes reading commands either from the interactive command line, or the next line in the batch file that executed the include <filename> command.

The error {continue/exit/exit-all} command is useful in conjunction with the batch file commands since it allows you to specify one of three options for error handling:

  • continue – Ignores errors and continues. The exit code reflects the status of the last command executed
  • exit – Exits the current batch file
  • exit-all – On error, exits the current batch file, or exits if in batch mode

Example: This example shows how to use the error command in combination with the include command to automate sending a set of commands contained in a batch file to multiple hosts.
In this example, the batch file, DoMyStuff.txt is used to automate the processes contained in Download.txt so that the process can be performed on multiple hosts.

From the Windows command line, issue the following command:

vsftp -b DoMyStuff.txt

Example DoMyStuff.txt batch file
error exit
open host1
include Download.txt
open host2
include Download.txt


get file1
rm file1

You can take advantage of the --log <logFileName> command line option to capture a log of the commands issued in a log file. Used in combination with the -v command line option, debugging/troubleshooting information will also be logged to the specified file.

If you have any questions about using the vsftp commands, contact VanDyke Software Support.