如何在sql中用扩展命令删除文件
有三个文件夹,a,b,c,每个文件夹下有若干文件(这些文件每天会生成新的)。现在想在sql中写一个作业删除文件夹下的文件,其中a,b文件夹下保留10天的文件,c文件夹下保留20天的文件。因为文件比较多,打算用批处理的命令完成,但是不知道该如何在sql中完成。请各位不吝指教
[解决办法]
- SQL code
exec master..xp_cmdshell 'del [路径]\[文件名]'
[解决办法]
各文件的文件名里带日期的吗?
如果有,可以向用dir目录读出所有的文件名到临时表,
然后筛选出datediff大于指定天数的,然后逐个删除.
[解决办法]
有一个forfiles命令,
参考 http://apps.hi.baidu.com/share/detail/706318
[解决办法]
- SQL code
-- 删除10天前的文件exec master.dbo.xp_cmdshell 'forfiles /p [路径] /s /m *.* /d -10 /c "cmd /c del @file" '-- 删除20天前的文件exec master.dbo.xp_cmdshell 'forfiles /p [路径] /s /m *.* /d -20 /c "cmd /c del @file" '