zoukankan      html  css  js  c++  java
  • 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.xxxxx 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 来覆盖它。
  • 相关阅读:
    面试汇总
    Windows 环境下的 protoc 安装(转)
    Hbase 元数据一致性检查(转)
    Slow ReadProcessor&Error Slow BlockReceiver错误日志分析(转)
    Hbase CMS GC 调优。
    [技术]排查线上问题
    crontab 误删恢复
    Hbase balancer RSgroup shell 脚本
    Hbase运维手册(1)
    Presto JVM.config
  • 原文地址:https://www.cnblogs.com/lx823706/p/6672535.html
Copyright © 2011-2022 走看看