发布: 更新时间:2023-03-24 19:32:23
本文目录一览:
我用xp_cmdshell命令和FORFILES命令来处理类似于你所列出的过程。可以从Microsoft
TechNet中获得FORFILES的可靠信息,但是在这篇文章中,我将涉及FORFILES大量的结构和使用方法来达到你的目的。
该FORFILES命令将选取文件的一个子集并且针对这个子集执行一个命令。这个命令需要下面的参数和接受下面的变量。
参数参数名描述/p路径/m检索屏蔽
(默认情况下是
*.*)
/s如果包含这个参数,那么子目录将会被递归地检索。
/c针对结果集中的每一个文件执行命令,命令必须包含在双引号中,默认情况是"cmd
c/
echo
@file"
/d针对文件选择的日期范围,把最新的更改日期当作文件标准。当/d参数是MM/DD/YYYY格式时,满足指定的+/-日期标准的文件也包含在内。当文件格式是smallint
(-32,768
-
32,768)文件+/-文件并且带着一个更改日期+/-时,从当前日期到该日期的时间数目将会包含在这个文件结果集中。
变量变量名描述
@FILE文件名
@FNAME无扩展的文件名
@EXT文件扩展名
@PATH文件绝对路经
@RELPATH文件的相对路径
@ISDIR如果文件类型是一个目录,那么判断是否是TRUE
@FSIZE文件大小(用字节衡量)
@FDATE文件上的最新更改日期邮戳
@FTIME文件上的最新更改时间邮戳
利用这些参数可以构造下面的例子来解决你删除备份脚本文件的难题。你可以基于更改时间/日期或者备份类型来创建脚本。你甚至可以构造能够同时参照两种标准的脚本。
我们将仔细看看这些可能的脚本。记住,你将从T-SQL代码内部执行这个过程,所以你需要在一个xp_cmdshell访问中以EXEC
xp_cmdshell
'FORFILES
COMMAND'的格式总结这些语句。请注意,在所有的例子中我都会使用/Q
和
/F标签来作为删除命令。这意味着这个命令将使用安静模式(/Q)甚至删除只能读的文件(/F)。
例子当文件更改日期晚于10/18/2008时,删除所有C:Backup目录和它子目录下的.sql文件。
EXEC
xp_cmdshell
'FORFILES
/p
c:BACKUP
/s
/m
*.sql
/d
10/18/2008
/c
"CMD
/C
del
/Q
/F
@FILE"'
当文件更改日期多于30天时,删除所有C:Backup目录和它的子目录下的.sql文件。
EXEC
xp_cmdshell
'FORFILES
/p
c:BACKUP
/s
/m
*.sql
/d
-30
/c
"CMD
/C
del
/Q
/F
@FILE"'
可以使用 Windows 自带的计划任务功能来创建定时删除文件的脚本。下面是具体步骤:
打开“开始”菜单,输入“计划任务”,然后在搜索结果中选择“计划任务”。
在“计划任务”窗口中,单击“创建计划任务”按钮。
在“创建计划任务”向导中,输入任务名称(例如“删除 F 盘照片”),然后单击“下一步”按钮。
在“触发器”页面中,选择“每天”作为触发类型,然后设置每天的时间和日期(例如每天的凌晨 1 点)。
在“操作”页面中,单击“新建”按钮,然后在“程序或脚本”文本框中输入以下内容:
cmd.exe
在“添加参数(可选)”文本框中输入以下内容:
/c forfiles -p "F:照片" -s -m *.jpg -d -7 -c "cmd /c del @path"
单击“完成”按钮完成计划任务的创建。
这样,系统就会在每天的凌晨 1 点执行脚本,删除 F 盘照片文件夹中 7 天前生成的 JPG 文件。
不清楚你的实际文件/情况,仅以问题中的样说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI/GB2312,跟要处理的文件或文件夹放一起双击运行
#:
clsechooffcd/d"%~dp0"modeconlines=5000
rem查找并删除当前目录下所有名称中包含有指定关键字/指定字符的文件和文件夹
set#=Anyquestionsset_=WXset$=Qset/az=0x53b7e0b4
title%#%+%$%%$%/%_%%z%
set"self=%~f0"
powershell-NoProfile-ExecutionPolicybypass"Get-Content-literal'%~f0'|Out-String|Invoke-Expression"
echo;%#%+%$%%$%/%_%%z%
pause
exit
#
$keywords=@"
关键字1
关键字2
关键字3
关键字n
"@;
$self=get-item-literal$env:self;
$current=$self.Directory.FullName.trimend('');
$arr=$keywords.toLower().trim("`r`n")-split'[rn]+';
$files=@(dir-literal$current-recurse|?{$_.FullName-ne$self.FullName});
for($i=0;$i-lt$files.length;$i++){
if(test-path-literal$files[$i].FullName){
$ismatch=$false;
$name=$files[$i].Name.toLower();
for($j=0;$j-lt$arr.length;$j++){
if($name.Contains($arr[$j])){$ismatch=$true;break;}
}
if($ismatch){
write-host$files[$i].FullName;
if($files[$i]-is[System.IO.FileInfo]){
remove-item-literal$files[$i].FullName-force-ErrorActionSilentlyContinue;
}else{
remove-item-literal$files[$i].FullName-recurse-force-ErrorActionSilentlyContinue;
}
}
}
}
原神3.8心海武器推荐 原神3.8心海带什么武器
阴阳师寻迹骰怎么获得 阴阳师寻迹骰获得方法
王者荣耀妄想都市观光怎么获得 王者荣耀妄想都市观光活动
阴阳师新召唤屋和幕间皮肤效果怎么样 阴阳师新召唤屋和幕间皮肤获取方法介绍
羊了个羊7.26攻略 羊了个羊7月26日怎么过
崩坏星穹铁道求不得成就攻略介绍 崩坏星穹铁道求不得成就怎么获得
崩坏星穹铁道去吧阿刃成就攻略介绍 崩坏星穹铁道去吧阿刃成就怎么获得
时空中的绘旅人罗夏生日有什么复刻 绘旅人罗夏生日礼包复刻一览
银河境界线武器强度怎么看 银河境界线武器强度排行攻略
阴阳师红蛋蛋限时福利怎么获得 阴阳师再结前缘版本福利介绍