我编写了下面的代码,它将提取目录名和文件名,我将对提取的文本使用清除命令。
$ sear VAXMANAGERS_ROOT:[PROC]TEMP.LIS LOG/out=VAXMANAGERS_ROOT:[DEV]FVLIM.TXT
$ OPEN IN VAXMANAGERS_ROOT:[DEV]FVLIM.TXT
$ LOOP:
$ READ/END_OF_FILE=ENDIT IN ABCD
$ GOTO LOOP
$ ENDIT:
$ close in
$ ERROR=F$EXTRACT(0,59,ABCD)
$ sh sym ERROR
$ purge/keep=1 'ERROR'
输出如下:
ERROR = "$1$DKC102:[PROD_LIVE.LOG]DP2017_TMP2.LIS;27392 "
这里的问题是 --- 每次目录长度变化时(长度可能是 59 或 40 或其他值,但在我的系统中目录和文件名长度不会超过 59 个字符)。所以在上面的输出中,系统也在获取那个文件号的版本号。所以我无法连同版本号一起清除文件。
%PURGE-E-PURGEVER, version numbers not permitted
任何建议 - 如何从输出中消除版本号?
我不能使用目录的确切长度,因为目录长度每次都不同.... :(