回 帖 发 新 帖 刷新版面

主题:用命令怎样删除表的备份文件(.BAK)

我在代码中允许用户建和删表,但在删除过程中我用的是deop命令,时间长了以后文件夹中,就残留许多删除表的备份文件。怎样在删除表的同时也删除它的备份文件。

回复列表 (共6个回复)

沙发

delete file *.bak

板凳

SELECT tblTally  &&这个表存的是表名
    cTableName=ALLTRIM(tblTally.fldTallyName)
    IF NOT EMPTY(cTableName)    &&保证表名的正确性
        DROP TABLE &cTableName  &&删除在磁盘中的表
        DELETE                 &&删除在tbltally里的表名
        SYS(2003)
        DELETE FILE &ctablename.BAK
   endif
我就是这样用的,别的都能删,只有表备份文件删不了呀!

3 楼

正确的宏替换语句如下:
&ctablename..BAK


但是严重建议不要使用宏替换。

应该改成
cTableName=ALLTRIM(tblTally.fldTallyName)
cBakTableName=JUSTSTEM(cTableName)+".BAK"
DELETE FILE (cBakTableName)

你试一个带有空格的文件名,就知道我说的绝对不过份的了。

4 楼

谢谢您!
按您的方法问题解决了。

5 楼

应该这样:

ERASE 路径\*.bak    
ERASE 路径\Ab*.bak  && 前面用同一的区别码
ERASE 路径\*Ab*.bak && 中间用同一的区别码
ERASE 路径\*Ab.bak && 后面用同一的区别码

文件赋名时要考虑他的通用性

6 楼

ERASE *.BAK 删除文件。
文件名可以包含通配符,如 * 和 ?,
如果文件名包含空格,应用引号把整个文件名括起来。

我来回复

您尚未登录,请登录后再回复。点此登录或注册