This is an old revision of the document!
Useful Scripts
- Downloading file to timestamped-filename
- Downloading the most recent file
- Moving local files to different location after upload
Advertisement
Downloading file to timestamped-filename
Using local-side scripting
You can use any available scripting language you have on the local host to generate appropriate WinSCP script. Following example uses PHP language:
get /home/user/examplefile.txt *.<?=date("YmdHis")?>.txt exit
Execute the script to generate actual WinSCP script file. The generated script file will look like:
get /home/user/examplefile.txt *.20060605090825.txt exit
Now pass the generated script file as input to WinSCP1:
php -q download.php | winscp.com user@example.com /console /script="%temp%\download.tmp"
Using remote-side scripting
If you do not have a scripting language on the local host, you can use remote-side script (like shell script). This approach requires opening separate shell session to invoke remote-side scripting.
Advertisement
# Make copy of the remote file to temporary timestamped file. # Also add unique extension to easily find the file in the temporary directory. call cp /home/user/examplefile.txt /tmp/examplefile.`date +%Y%m%d%H%M%S`.unique # Download all the files with the unique extension. # There should be only one, the one just created. # While downloading, remove the unique extension. get /tmp/*.unique *. # Remove the temporary file. rm /tmp/*.unique exit
Downloading the most recent file
The script below requires opening separate shell session to invoke remote-side scripting.
# Make copy of the most recent file using remote command to new name # with unique extension to easily find the file in the temporary directory. call cp `ls -t | head -1` /tmp/`ls -t | head -1`.latest # Download all the files with the unique extension. # There should be only one, the one just created. # While downloading, remove the unique extension. get /tmp/*.latest *. # Remove the temporary file. rm /tmp/*.latest exit
Moving local files to different location after upload
WinSCP does not support move command for local files. Instead you can combine WinSCP script with batch file:
# Make the script abort on any error option batch abort # Connect open session # Upload the files put *.*
Launch the above script from batch file like the one below:
winscp.com /script=example.txt if errorlevel 1 goto error echo Upload succeeded, moving local files move *.* c:\backup\ exit :error echo Upload failed, keeping local files
Advertisement
- WinSCP console interface tool supports script on standard input since 3.8.2 only. With earlier versions you need to store the script into temporary file first.Back