OpenVMS Source Code Demos
FTP_MULTI_STACK_SCRIPTING_DEMO2
$!=================================================================================
$! title : ftp_multi_stack_scripting_demo2.com
$! author : Neil Rieck
$! created: 2015-07-12
$! notes :
$! 1) TCPware passes username and password "positionally" on the FTP command line
$! 2) MultiNet and "TCPIP Services" support command line switches "/user" + "/pass"
$! 3) TCPIP Services will upcase anything not double-quoted
$!=================================================================================
$ set noon ! do not stop
$ say :== write sys$output !
$ say "-i-script: ",f$environment("PROCEDURE") !
$!------------------------------------------------------
$ dest = "kawc3w.on.bell.ca" ! Solaris-8
$ user = "ibam" !
$ pass = "ibam2005" !
$!------------------------------------------------------
$ dq[0,8]=34 ! double quote
$ stack = 0 ! init
$ if f$trnlnm("TCPIP$EXAMPLES") .nes. "" ! best choice?
$ then !
$ say "-i-detected: TCPIP Services" !
$ stack = stack .or. 1 !
$endif !
$ if f$trnlnm("MULTINET") .nes. "" !
$ then !
$ say "-i-detected: MultiNet" !
$ stack = stack .or. 2 !
$ endif !
$ if f$trnlnm("TCPWARE") .nes. "" !
$ then !
$ say "-i-detected: TCPware" !
$ stack = stack .or. 4 !
$ endif !
$ stamp = f$cvtime() - ":" -":" -"-" -"-" -" " -"." ! eg. 2015081113241543
$ cmdfs = "ftp_"+ stamp +".com" ! eg. ftp_2015081113241543.com
$!------------------------------------------------------
$ open/write cmdbuf 'cmdfs' ! build a command file
$ write cmdbuf "$set verify"
$ write cmdbuf "$set noon"
$ if ((stack .and. 4) .eq. 4) ! TCPware
$ then !
$ say "-i-using TCPware variant" !
$ write cmdbuf "$ftp ",dest," ",user," ",pass
$ goto continue_build !
$ endif !
$ if ((stack .and. 2) .eq. 2) ! MultiNet
$ then !
$ say "-i-using MultiNet variant" !
$ write cmdbuf "$ftp ",dest," /user=",user,"/pass=",pass
$ goto continue_build !
$ endif !
$ say "-i-using TCPIP SERVICES variant" ! TCPIP Services
$ write cmdbuf "$ftp ",dest," /username=",dq,user,dq," /password=",dq,pass,dq
$continue_build: !
$ write cmdbuf "$deck" ! batch stuff
$ write cmdbuf "dir"
$ write cmdbuf "asc"
$ write cmdbuf "put ftp_multi_stack_scripting_demo2.com"
$ write cmdbuf "dir"
$ write cmdbuf "bye"
$ write cmdbuf "$eod" ! batch stuff
$ write cmdbuf "$my_saved_status = $STATUS" !
$ write cmdbuf "$write sys$output my_ftp_status"
$ write cmdbuf "$exit 'my_ftp_status'" !
$ close cmdbuf !
$ @'cmdfs' ! execute the script
$ my_saved_status = $STATUS !
$ write sys$output my_saved_status !
$fini:
$ if (f$length(cmdfs).ge.10) !
$ then
$ del/nolog/noconfirm 'cmdfs';
$ endif
$ exit