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去创建子进程时,当父/子进程都涉及到锁的操作,可能会产生死锁。 代码样例 #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…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...