![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
The Question is: We are running a command procedure periodically which does the following rename: IF F$SEARCH("DISK$DISK0:[IAPROD.SIDATA.FINAID]PGDA03BK.*") .NES. "" THEN - RENAME/LOG DISK$DISK0:[IAPROD.SIDATA.FINAID]PGDA03BK.* - DISK$DISK0:[IAPROD.SIDATA.FINAID.ARC]PGDA03BK_PROCESSED.* When there are multiple file types within the file, called PGDA03BK (ex.: PGDA03BK.072 and PGDA03BK.073), files are renamed, but if there is only 1 file (ex.:PGDA03BK.072) then the file does not get renamed. Is the syntax of the rename command incorrect?. Thank you, William G. Kassar The Answer is : This appears to be expected behaviour. Please follow the directions in the DCL manual for (re)establishing the wildcard context for F$SEARCH -- the RENAME syntax used does appear to be correct. Whenever you issue an F$SEARCH containing a wild card, the search context is retained until there are no more matching files -- until a null string is returned -- or until a new F$SEARCH is started with a different file specification. If your command is executed multiple times, then the the second and subsequent executions will use the existing F$SEARCH context, because the file specifications are the same. This can give correct, but misleading, results. You should ensure any old F$SEARCH contexts are cleared before starting a new search. For example: $ Clear=F$SEARCH("") $ IF F$SEARCH("DISK$DISK0:[IAPROD.SIDATA.FINAID]PGDA03BK.*") .NES. "" THEN - RENAME/LOG DISK$DISK0:[IAPROD.SIDATA.FINAID]PGDA03BK.* - DISK$DISK0:[IAPROD.SIDATA.FINAID.ARC]PGDA03BK_PROCESSED.* Please check the log file for the command procedure for errors, as well. If this is not the contextual processing within F$SEARCH, please contact the support center, as details of the OpenVMS Alpha release and ECO level will be required.
|