Differences

This shows you the differences between the selected revisions of the page.

scripts 2008-07-20 scripts 2021-03-31 (current)
Line 1: Line 1:
====== Useful Scripts ====== ====== Useful Scripts ======
-===== [[upload]] Uploading single file ===== +··* [[script_upload_single_file|*]] 
- +  * [[script_upload_multiple_servers|*]] 
-Upload single file involves so little commands that it it enough to provide them on command line, saving writing a script file: +  * [[script_download_timestamped_filename|*]] 
- +  * [[script_download_most_recent_file|*]] 
-<code> +  * [[script_upload_most_recent_file|*]] 
-winscp.com user@example.com /command "put examplefile.txt /home/user/" "exit" +  * [[script_checking_file_existence|*]] 
-</code> +  * [[script_local_move_after_successful_upload|*]] 
- +  * [[script_locking_files_while_uploading|*]] 
-===== Downloading file to timestamped-filename ===== +  * [[script_downloading_when_done_file_exists|*]] 
- +  * [[script_download_files_to_same_folder|*]] 
-==== Using local-side scripting ==== +  * [[script_upload_file_list|*]] 
- +  * [[script_synchronize_any_local_file|*]] 
-You can use any available scripting language you have on the local host to generate appropriate WinSCP script. Following example uses PHP language: +  * [[script_auto_compress_download|*]] 
- +  * [[script_custom_listing_format_csv|*]] 
-<code php> +  * [[script_retry|*]] 
-get /home/user/examplefile.txt *.<?=date("YmdHis")?>.txt +  * [[script_formatting_timestamp_batch_file|*]] 
-exit +  * [[script_email|*]] 
-</code> +  * [[script_vbnet_robust_example|*]]
- +
-When executed, the generated WinSCP script file may look like+
- +
-<code winscp&gt; +
-get /home/user/examplefile.txt *.20060605090825.txt +
-exit +
-</code> +
- +
-Now pass the generated script file as input to WinSCP+
-<code> +
-php -q download.php | winscp.com user@example.com /script="%temp%\download.tmp" +
-</code> +
- +
-==== 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. +
- +
-<code winscp> +
-# 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 +
-</code> +
- +
-===== Downloading the most recent file ====+
-The script below requires opening separate [[shell session]] to invoke remote-side scripting. +
- +
-<code winscp> +
-# 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 +
-</code> +
- +
-===== [[local_move]] 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: +
- +
-&lt;code winscp> +
-# Make the script abort on any error +
-option batch abort +
-# Connect +
-open session +
-# Upload the files +
-put *.* +
-</code> +
- +
-Launch the above script from batch file like the one below+
- +
-<code> +
-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 +
-</code> +
- +
 +===== Other Examples =====
 +  * Guide to [[guide_automation|scripting/automation]];
 +  * Guide to [[guide_automation_advanced|advanced scripting]];
 +  * See [[library_examples|*]] for advanced tasks.

Last modified: by martin