Sample scripts are provided as-is with no warranty of fitness for a particular purpose. These scripts are solely intended to demonstrate techniques for accomplishing common tasks. Additional script logic and error-handling may need to be added to achieve the desired results in your specific environment.
archive_rename.s
Sample to get each file in the "output" directory (could be any directory), send the file, rename the file with the date, and move it into the "output-archive" directory.
This script demonstrates numerous Robo-FTP features:
- Using GETNEXTFILE to iterate through a directory
- Using string manipulation and built-in date variables to build custom file names.
- Using filesystem commands to move local files
1 FTPLOGON
2 ;; set output_directory and archive_directory
3 ;; NOTE: need to use the full path here
4 SET output_directory = "C:\Program Files\Robo-FTP\output"
5 SET archive_directory = "C:\Program Files\Robo-FTP\output-archive"
6
7 ;; Set the working directory to the "output" directory
8 WORKINGDIR output_directory
9
10 :loop
11 ;; Get a file from the working directory
12 ;; NOTE: if successful this will set the "%nextfile" internal
13 ;; script variable to the file name found
14 GETNEXTFILE "*"
15 IFERROR RETURN $ERROR_SUCCESS
16
17 ;; set file_found to "%nextfile"
18 SET file_found = %nextfile
19 ;; file was found, send it
20 SENDFILE file_found
21 IFERROR RETURN
22
23 ;; rename the file with the date
24 ;; do string manipulation to "break" up file name found to
25 ;; get the base name from the extension
26 ;; NOTE: this sample is assuming a 3 character extension
27 ;; will be used
28 SET base_name = file_found
29 ;; set 4 characters on the right to extension and split
30 ;; apart remaining
31 SETRIGHT extension = base_name "4" /split
32 ;; set archive_name to base_name + %date + extension
33 SET archive_name = base_name & %date & extension
34 ;; rename file_found to archive_name
35 RENAME file_found archive_name
36
37 ;; set the archive_path to archive_directory + "\" + archive_name
38 SET archive_path = archive_directory & "\" & archive_name
39 ;; move the file to archive_path
40 MOVE archive_name archive_path
41
42 ;; loop
43 GOTO loop
44