This is an old revision of the document!
Useful Scripts
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 | winscp3 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
- WinSCP supports script on standard input since 3.8.2 only. With earlier versions you need to store the script into temporary file first.Back