You can use expect, which comes with the tcl/tk package, to script ftp, telnet, or any other command-line client. Expect allows to write scripts such as :
#!/usr/bin/expect --
# rlogin-cwd - rlogin but with same directory
#
# You can extend this idea to save any arbitrary information across rlogin
# Don Libes - Oct 17, 1991.
set prompt "(%|#|\\$) $" ;# default prompt
catch {set prompt $env(EXPECT_PROMPT)}
eval spawn rlogin $argv
set timeout 60
expect eof exit timeout {send_user "timed out\n"; exit} -re $prompt
send "cd [pwd]\r"
interact
There is even autoexpect which generates a script from watching a session.