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 来覆盖它。
posted @ 2017-04-06 11:09  鱼日文弓虽  阅读(517)  评论(0编辑  收藏  举报