HP OpenVMS Systemsask the wizard |
The Question is:
I am trying to define a symbol to perform the following command, however after
the first time using the symbol it changes the symbols definition. How can I
get this to work. Thanks
Show symbol Test
Test = "@sys$login:logout ''f$environment("PROCEDURE") "
Show symbol Test
Test = "@sys$login:logout TNA629: "
The Answer is :
You have unfortunately not indicated details of what you want to do,
nor provided a complete reproducer. Without background and without
details of the problem you are trying to solve, the OpenVMS Wizard
has difficulty providing answers and alternatives.
Note that the use of the double-leading-apostrophe notation within
the quoted string causes the substitution to be performed immediately
when the DCL command for the assignment is entered, and not later when
the DCL command -- the one being created within the symbol -- is
eventually evaluated.
Also note that f$environment("PROCEDURE") provides the name of the
DCL command procedure. If you wish to acquire the terminal device
associated with the current process, use of the DCL lexical functions
f$getdvi("TT","FULLDEVNAM") or f$getdvi("TT","DEVNAM") can be useful.
If you want to pass a variable parameter to the target DCL procedure,
one of the easiest ways can involve a DCL procedure "wrapper", a small
DCL procedure that calls the target DCL procedure with the desired
parameter(s).
|