当前位置: 首页 > news >正文

sql server删除过期备份文件脚本

一、通过脚本查看过期文件,时间可以自己设定

for /f "delims=" %i in ('dir /b /a-d "E:\mybak_file\*.bak" ^| findstr /i "backup" ^| findstr /v /i "no_backup"') do @if "%~ti" LSS "2024/09/29 16:50" echo %~ti NAME:%i

循环遍历查看小于指定时间点的文件 %i 是文件,也可以输出,切记 %~ti 的格式是 年/月/日 时:分
如果要对比的话要吧%~ti用双引号引起来,后面的时间字符串也引用起来!

二、删除过期文件

DECLARE @Path NVARCHAR(255) = 'E:\mybak_file\';  -- 备份文件存储路径
DECLARE @CutoffDate NVARCHAR(120) = REPLACE(CONVERT(VARCHAR(16), DATEADD(DAY, -14, GETDATE()), 120), '-', '/');
DECLARE @Cmd NVARCHAR(4000);-- 删除超过两周的备份文件
SET @Cmd = 'for /f "delims=" %i in (''dir /b /a-d "' + @Path + '*.bak" | findstr /i "backup" | findstr /v /i "no_backup" '') do @if "%~ti" LSS "' + CONVERT(VARCHAR, @CutoffDate, 120) + '" del "' + @Path + '%i"';-- 临时启用 xp_cmdshell
EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE;  
EXEC sp_configure 'xp_cmdshell', 1;  
RECONFIGURE;-- 执行您的命令
EXEC xp_cmdshell @Cmd;-- 恢复 xp_cmdshell 的状态(可选)
EXEC sp_configure 'xp_cmdshell', 0;  
RECONFIGURE;

这里执行之后还是没有成功删除,继续修改脚本!!!!!!

三、问题解决

命令里面的管道符,必须要转义,否则会报错,报错内容如下

此时不应有 |。管道符号(|)的误用: SQL Server 的 T-SQL 语言本身并不支持管道符号(|)。如果您尝试在 SQL 查询中直接使用它,可能会导致该错误。管道符号通常用于命令行界面或其他编程环境(例如 PowerShell)。错误的命令: 如果您在 SQL Server 中执行的命令尝试以不正确的格式使用 SQL Server 的功能或选项,可能也会引发此错误。

真是一波三折啊,命令拼好如下:

for /f "delims=" %i in ('dir /b /a-d "E:\yunbak_file\*.bak" ^| findstr /i "backup" ^| findstr /v /i "no_backup" ') do @if "%~ti" LSS "2024/09/16 17:31" echo del "E:\yunbak_file\%i"

直接在cmd执行一点问题没有,但是用xp_cmdshell 执行,就是不行,还会误删所有文件,一直百思不得其解,后来多种测试以后发现是%~ti压根没有获取到。

终于找到方法解决了,真是太不容易了,不过还是对命令不熟悉,这里尝试多次后发现以下命令可以完美解决!!

for /f "tokens=1,2,4 delims= " %i in ('dir /T:W "E:\yunbak_file\*.bak" ^| findstr /i "backup" ^| findstr /v /i "no_backup" ') do @if "%i %j" LSS "2024/09/16 17:54" echo del "E:\yunbak_file\%k"

四、终极版本

以下是修改后的完整的清理备份文件的脚本(终极版本):

DECLARE @Path NVARCHAR(255) = 'E:\yunbak_file\';  -- 备份文件存储路径
DECLARE @CutoffDate NVARCHAR(120) = REPLACE(CONVERT(VARCHAR(16), DATEADD(DAY, -14, GETDATE()), 120), '-', '/');
DECLARE @Cmd NVARCHAR(4000);-- 删除超过两周的备份文件SET @Cmd = 'for /f "tokens=1,2,4 delims= " %i in (''dir /T:W "' + @Path + '*.bak" ^| findstr /i "backup" ^| findstr /v /i "no_backup" '') do @if "%i %j" LSS "' + CONVERT(VARCHAR, @CutoffDate, 120) + '" del "' + @Path + '%k"';SELECT @Cmd;
-- 临时启用 xp_cmdshell
EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE;  
EXEC sp_configure 'xp_cmdshell', 1;  
RECONFIGURE;-- 执行您的命令
EXEC xp_cmdshell @Cmd;-- 恢复 xp_cmdshell 的状态(可选)
EXEC sp_configure 'xp_cmdshell', 0;  
RECONFIGURE;

相关文章:

sql server删除过期备份文件脚本

一、通过脚本查看过期文件,时间可以自己设定 for /f "delims" %i in (dir /b /a-d "E:\mybak_file\*.bak" ^| findstr /i "backup" ^| findstr /v /i "no_backup") do if "%~ti" LSS "2024/09/29 16:50&qu…...

【Docker系列】Docker查看镜像架构

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Python案例 | 测试网络的下载速度上传速度和 ping 延迟

使用了 speedtest 库来测试网络的下载速度上传速度和 ping 延迟 注意,这里需要先卸载speedtest,再安装speedtest-cli pip uninstall speedtest pip install speedtest-cli其次运行代码: # 使用了 speedtest 库来测试网络的下载速度上传速度…...

一键找回,2024四大固态硬盘数据恢复工具推荐!

虽然固态硬盘(SSD)因其读写速度快、功耗低等特点受到广泛欢迎,但它并非无懈可击,数据丢失的问题依然存在。如果你也遇到了固态硬盘数据丢失的问题,那么一下的这几款软件可以一试! 福昕数据恢复 直达链接&…...

数据结构~AVL树

文章目录 一、AVL树的概念二、AVL树的定义三、AVL树的插入四、AVL树的平衡五、AVL树的验证六、AVL树的删除七、完整代码八、总结 一、AVL树的概念 AVL树是最先发明的自平衡二叉查找树,AVL是⼀颗空树,或者具备下列性质的二叉搜索树:它的左右子…...

ffmpeg面向对象——rtsp拉流探索(1)

目录 0.avformat_open_input的rtsp流程程纯净版1.rtsp拉流流程图2.rtsp拉流对象图 标准rtsp协议的基石是tcp,本节探索下ffmpeg的rtsp拉流协议tcp的创建及rtsp协商过程。 0.avformat_open_input的rtsp流程程纯净版 ffmpeg拉流,从avformat_open_input接口…...

【启明智显分享】ZX7981PM WIFI6 5G-CPE:2.5G WAN口,2.4G/5G双频段自动调速

昨天,我们向大家展现了ZX7981PG WIFI6 5G-CPE,它强大的性能也引起了一波关注,与此同时,我们了解到部分用户对更高容量与更高速网口的需求。没关系!启明智显早就预料到了!ZX7981PM满足你的需求! …...

openresty“热部署“lua

一、前言 频繁reload 或者restart影响测试使用nginx,修改lua脚本后要实际查看效果值,使用关闭lua代码缓存,可以实现实时查看代码效果。 每次请求都会从磁盘中加载lua脚本,生产上面不要开启,影响响应速度 二、修改ngin…...

基于SpringBoot+Vue+MySQL的企业招聘管理系统

系统展示 用户前台界面 管理员后台界面 企业后台界面 系统背景 在当今数字化转型的大潮中,企业对于高效、智能化的人力资源管理系统的需求日益增长。招聘作为人力资源管理的首要环节,其效率与效果直接影响到企业的人才储备与竞争力。传统的招聘方式不仅耗…...

vue3之defineComponent

defineComponent 是 Vue 3 中提供的一个辅助函数,用于定义组件。它可以帮助你更好地利用 TypeScript 的类型推断和 IDE 的自动补全功能。defineComponent 主要用于组合式 API(Composition API)和单文件组件(SFC)。 使…...

springboot+vue家政服务管理平台

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的,前后端分离。 开发语言:Java数据库:MySQL技术:…...

python pip安装requirements.txt依赖与国内镜像

python pip安装requirements.txt依赖与国内镜像 如果网络通畅,直接pip安装依赖: pip install -r requirements.txt 如果需要国内的镜像,可以考虑使用阿里的,在后面加上: -i http://mirrors.aliyun.com/pypi/simple --…...

解决Qt的QWidget设计师编辑UI后和软件运行显示不一致

解决方法,只需要在main.cpp中加入下面一段代码 if (QT_VERSION > QT_VERSION_CHECK(5, 6, 0))QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling,true); 完整的代码如下 int main(int argc, char *argv[]) { if (QT_VERSION > QT_VERSION_C…...

交易所开发:构建安全、高效、可靠的数字资产交易平台

数字资产交易平台是加密市场中连接用户与数字货币的重要枢纽。开发一个安全、高效、可靠的交易所,不仅需要综合考虑技术架构、安全策略、用户体验等方面,还需严格遵循法规要求以确保合规性。本文总结了交易所开发的关键要素,包括其类型、核心…...

【Next.js 入门教程系列】09-优化技巧

原文链接 CSDN 的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话, 给我的库点个star,关注一下吧 上一篇【Next.js 入门教程系列】08-发送邮件 优化技巧 本篇包括以下内容: Optimizing imagesUsing third-party JS…...

Windows 11 开发详解:工具与高级用法

1. 引言 Windows 11 是微软最新的操作系统,它不仅带来了全新的用户界面和设计理念,还为开发者提供了强大的开发工具和平台支持。在过去的几年中,开发工具和技术栈发生了巨大的变化,Windows 11 通过其集成的开发环境、虚拟化技术、…...

leetcode 292.Nim游戏

思路:数学 这有一点博弈论的味道,但是我们依然可以用数学的角度去思考。 我们的入手点在这里: 我们是先手的前提下,一共有4个石头,但是每个人只能一次拿其中的1-3个。在一共有4个石头的情况下,我们无论拿…...

《最优化方法》

课件是学习的核心内容 这门课,作业自己交,但是老师不做记录,上课不点名, 不记录平时成绩。 第一章 最优化问题的概述 1.1 概述(和考试内容无关,了解内容) 例题1.1.1运输问题 数学模型&#x…...

fork中的死锁问题

背景 当我们通过fork去创建子进程时&#xff0c;当父/子进程都涉及到锁的操作&#xff0c;可能会产生死锁。 代码样例 #include <iostream> #include <mutex> #include <unistd.h> std::mutex m; int main() {std::cout << "main process begi…...

Java面试题———SpringBoot篇

目录 1、项目中为什么选择SpringBoot 2、SpringBoot的自动装配原理 3、SpringBoot的核心注解是哪个 4、SpringBoot中的starter是干什么的 5、SpringBoot可以有哪些方式加载配置 6、bootstrap.yml和application.yml有何区别 7、SpringBoot读取配置的方式有几种 8、Spring…...

10-红外接收探头电路设计实战指南

1. 红外接收探头基础入门 第一次接触红外接收探头时&#xff0c;我也被那一堆专业术语搞得晕头转向。其实这东西就像个"红外线翻译官"&#xff0c;专门把遥控器发来的红外光信号转换成电信号。市面上常见的HS0038、LF0038L这些型号&#xff0c;本质上都是将光敏二极…...

突破游戏视觉定制边界:LeaguePrank的安全实现与创新应用

突破游戏视觉定制边界&#xff1a;LeaguePrank的安全实现与创新应用 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 如何在不触及游戏核心文件的前提下&#xff0c;为英雄联盟客户端打造个性化视觉体验&#xff1f;随着玩家对…...

Gradio实战:用gr.Button和gr.Markdown打造高颜值交互界面(附CSS美化技巧)

Gradio界面美学革命&#xff1a;从基础组件到高级定制的全链路设计指南 在AI应用爆炸式增长的今天&#xff0c;一个美观直观的交互界面已经成为产品成功的关键因素。Gradio作为最受欢迎的AI应用快速构建工具&#xff0c;其默认样式往往难以满足专业级产品的视觉需求。本文将带您…...

AIVideo效果展示:输入主题输出专业视频,惊艳案例分享

AIVideo效果展示&#xff1a;输入主题输出专业视频&#xff0c;惊艳案例分享 1. 专业级视频生成效果概览 AIVideo一站式AI长视频工具能够将简单的文字主题转化为完整的专业视频作品。只需输入一个主题&#xff0c;系统就会自动完成从文案创作、分镜设计、画面生成到配音剪辑的…...

OpenClaw自动化写作助手:基于GLM-4.7-Flash的草稿生成与润色

OpenClaw自动化写作助手&#xff1a;基于GLM-4.7-Flash的草稿生成与润色 1. 为什么需要自动化写作助手 作为一个长期与文字打交道的内容创作者&#xff0c;我经常面临这样的困境&#xff1a;明明有好的选题灵感&#xff0c;却卡在初稿阶段耗费大量时间&#xff1b;或是写完后…...

Nuitka打包Python脚本为.exe的完整避坑指南(含Selenium解决方案)

Nuitka打包Python脚本为.exe的完整避坑指南&#xff08;含Selenium解决方案&#xff09; 将Python脚本打包成独立的可执行文件是许多开发者面临的常见需求&#xff0c;尤其是当需要分发工具或应用给没有Python环境的用户时。Nuitka作为一款强大的Python编译器&#xff0c;能够将…...

从‘瓦特’到‘分贝瓦’:一个公式讲透无线通信中的功率与信噪比换算

从‘瓦特’到‘分贝瓦’&#xff1a;无线通信中的功率与信噪比实战指南 在无线通信系统设计中&#xff0c;功率与信噪比的换算如同工程师的"货币兑换"——你需要熟练掌握瓦特&#xff08;W&#xff09;、分贝瓦&#xff08;dBW&#xff09;、分贝毫瓦&#xff08;dB…...

Linux initramfs深度解析: 从内核启动到根文件系统的桥梁(3)

接前一篇文章&#xff1a;Linux initramfs深度解析: 从内核启动到根文件系统的桥梁&#xff08;2&#xff09; 设计思想与架构 1. 为什么需要initramfs 在initramfs出现之前&#xff0c;系统启动有一个根本性的问题&#xff1a;内核需要访问根文件系统来加载驱动程序&#xf…...

MicroOS:Arduino轻量级任务调度内核详解

1. MicroOS&#xff1a;面向Arduino的轻量级任务管理内核概述MicroOS是一个专为Arduino平台设计的极简型实时任务管理器&#xff0c;其核心定位并非替代FreeRTOS或Zephyr等完整RTOS&#xff0c;而是填补Arduino原生loop()单线程模型在多任务调度、精确定时与事件解耦方面的空白…...

WarcraftHelper:魔兽争霸3终极优化指南 - 解锁现代硬件性能

WarcraftHelper&#xff1a;魔兽争霸3终极优化指南 - 解锁现代硬件性能 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为魔兽…...