home *** CD-ROM | disk | FTP | other *** search
- # CAPTURE macro for downloading text files from VMS without Kermit protocol.
- #
- # Windows Installation:
- # Copy this text into your K95CUSTOM.INI file.
- # Tell K95 to "take \v(appdata)k95custom.ini" or restart K95.
- # Alternatively, store this in a separate file and add a TAKE
- # command for it to your K95CUSTOM.INI file.
- # Alternatively, just give a TAKE command for this file at the K-95> prompt.
- #
- # Usage:
- # You must already have a connection to VMS and VMS must be at its
- # command prompt. If necessary, use Alt-X (or the second toolbar button)
- # to go to K95's command screen.
- # At the K-95> prompt, type "capture xxx", where xxx is the name of the
- # file you want to download. Alternatively you can type
- # "capture xxx yyy" where yyy is the name you want to give the in Windows.
- # If you don't give the second argument the file is stored with the
- # same name. The default timeout (maximum number of seconds for the
- # capture to complete) is 120 seconds. You can override the default by
- # giving another number as the third argument. After the capture, use
- # Alt-X or the second toolbar button to rerturn to VMS.
- #
- # Bugs and limitations:
- # 1. The VMS command prompt appears at the end of the captured file.
- # 2. The capture can terminate prematurely if the VMS command prompt
- # appears in the file itself.
- # 3. Since there is no error checking the captured file might have errors
- # or gaps, especially on serial-port or modem connections.
- # 4. You can only capture text files this way.
- # 5. You can only capture one file at a time.
- # (That's why it's better to use a real file transfer protocol)
- #
- # Note: by changing the first two parameters just below, this macro can also
- # be used to capture files from Unix or other OS's with text-based command
- # shells.
- #
- # Note 2: Instructions are for Windows, but it can be run on Unix, VMS,
- # or other platforms too.
- #
- # F. da Cruz, Columbia University, July 2008
- #
- define hostprompt "$ " # VMS command prompt
- define typecommand "TYPE /NOPAGE" # VMS command to display the file
- define capturetimeout 120 # Maximum time for capture (seconds)
-
- define CAPTURE {
- if not def \%1 {
- echo "Usage:"
- echo "CAPTURE vmsfilename [ localfilename [ timeout ] ]"
- end 1
- }
- if not def \%2 assign \%2 \%1 # Local filename
- if not def \%3 assign \%3 \m(capturetimeout) # Timeout
-
- if exist \%2 getok "OK to overwrite existing copy of \%2? "
- if fail end 1
-
- clear input # Clear INPUT buffer
- output \13 # Send a carriage return
- input 5 "\m(hostprompt)" # Wait to see prompt
- if fail stop 1 CAPTURE: ERROR - FAILURE TO SEE DCL PROMPT "\m(hostprompt)"
-
- log session \%2 # Open capture file
- if fail end 1 # Make sure it was opened.
- output \m(typecommand) \%1\13 # Tell VMS to display the file.
- input \m(capturetimeout) "\m(hostprompt)" # Wait for next DCL prompt
- if fail {
- echo "TIMEOUT \v(inwait) seconds - \%2 might be incomplete."
- echo "Check that the VMS prompt definition agrees with the"
- echo "the actual VMS prompt. Hint: you can specify a longer"
- echo "timeout by changing the 'capturetimeout' definition or by"
- echo "specifying the time limit as a third agument."
- close session
- end 1
- }
- close session # Close the capture file
- echo "CAPTURE \%1 -> \%2 OK:" # Give messages
- directory \%2
- end 0
- }
-