sqlserver中常用的windows命令行的操作
1、删除指定目录下指定时间之前的文件;
declare @deldate varchar(50), @bakpath varchar(50), @sqltxtdel varchar(max) --指定的删除时间 set @deldate= '-8' --指定的删除路径 set @bakpath='x:\xxxx' set @sqltxtdel ='xp_cmdshell ''forfiles /P '+@bakpath+' /D '+@deldate+' /S /M *.* /c "cmd /c del @file"''' print @sqltxtdel exec (@sqltxtdel)
forfiles:
/p 指定的路径
/s 包括子目录
/m 查找的文件名掩码
/d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前
/c 运行的命令行 表示为每个文件执行的命令。命令字符串应该
用双引号括起来。
默认命令是 "cmd /c echo @file"。下列变量
可以用在命令字符串中:
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 "TRUE";
如果是文件,返回 "FALSE"。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间。
2、复制目标目录下文件已存在文件之前的源目录下的文件
exec ('xp_cmdshell ''xcopy \\x.x.x.x\xx\xx x:\xx /s /e /D''')
Xcopy
复制文件和目录树。 XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/EXCLUDE:file1[+file2][+file3]...] source 指定要复制的文件。 destination 指定新文件的位置和/或名称。 /A 仅复制具有存档属性设置的文件,不更改属性。 /M 仅复制具有存档属性设置的文件,关闭存档属性。 /D:m-d-y 复制在指定日期或之后发生更改的文件。 如果不指定日期,则仅复制源时间晚于目标时间的文件。 /EXCLUDE:file1[+file2][+file3]... 指定包含字符串的文件列表。如果任一 字符串与待复制文件的绝对路径的任意部分相匹配, 则不复制此文件。例如, 指定字符串 /obj/ 或 .obj,将分别排除 目录 obj 下的所有文件或 带 .obj 扩展名的所有文件。 /P 创建每个目标文件之前都进行提示。 /S 复制目录和子目录,空的目录和子目录除外。 /E 复制目录和子目录,包括空的目录和子目录。与 /S /E 相同。可用于修改 /T。 /V 验证每个新文件。 /W 复制前提示您按某个键。 /C 即使出现错误仍继续复制。 /I 如果目标不存在并且要复制多个文件,则假定目标一定是一个目录。 /Q 复制时不显示文件名。 /F 复制时显示完整的源和目标文件名。 /L 显示将要复制的文件。 /H 同时复制隐藏文件和系统文件。 /R 覆盖只读文件。 /T 创建目录结构,但不复制文件。不包括空的目录或子目录。/T /E 包括空的目录和子目录。 /U 仅复制目标中已存在的文件。 /K 复制属性。标准 Xcopy 将重置只读属性。 /N 使用生成的短名称复制。 /O 复制文件所有权和 ACL 信息。 /X 复制文件审核设置(暗含 /O)。 /Y 不使用确认是否要覆盖现有目标文件的提示。 /-Y 使用确认是否要覆盖现有目标文件的提示。 /Z 用可重新启动模式复制网络文件。 开关 /Y 可以在 COPYCMD 环境变量中预置。 可以在命令行上使用 /-Y 来覆盖它。
如果你是蜗牛,那你就不必害怕自己前进的缓慢,相信你自己,因为你的脚步永远不会落空,只要你一步步的向上爬,金字塔也必定被你踩在脚下。