zoukankan      html  css  js  c++  java
  • usp_Copy_Unzip_DirFiles -- 拷贝,解压,列出文件名 from FTP Folder to Work Folder

    CREATE PROC usp_Copy_Unzip_DirFiles 
    @FTPPath NVARCHAR(4000)= '',    -- ftp 文件夹路径
    @WorkPath NVARCHAR(4000) = '',  -- work 文件夹路径
    @FileName NVARCHAR(4000) = '',  -- 文件名
    @sqlCmd NVARCHAR(4000) = '', -- 要执行的 cmd 命令
    @RegRule nvarchar(4000) = 'Regex*.zip', -- 定义要拷贝的文件名的规则
    @7zipPath NVARCHAR(4000) = 'IPCC$"Program Files"7-Zip7z.exe',  -- 原理即调用 7z 解压软件解压,所以  IPC 对应到相应的网络磁盘路径
    @IsZipped BIT = 1   -- 输入参数,确认拷贝的 是不是 压缩文件,只有压缩文件,下面的脚本解压部分才需要执行
    AS
    SET @sqlCmd = 'dir /b '+@FTPPath+@RegRule
    IF OBJECT_ID('tempdb..#dirlisttab') IS NOT NULL 
    DROP TABLE tempdb..#dirlisttab
    CREATE TABLE tempdb..#dirlisttab
    (
    FILENAME Nvarchar(128)
    )
    
    
    INSERT INTO #dirlisttab
    EXEC xp_cmdshell @sqlCmd
    --SELECT * FROM #dirlisttab
    
    DECLARE file_cur CURSOR LOCAL STATIC FORWARD_ONLY FOR 
    SELECT [FILENAME] FROM #dirlisttab
    OPEN file_cur
    WHILE 1=1 
    BEGIN 
    fetch next from file_cur into @FileName
    SET @sqlCmd = 'copy '+@FTPPath+@FileName+' '+@WorkPath+@FileName
    print @sqlcmd
    EXEC xp_cmdshell @sqlcmd
    
    IF(@IsZipped = 1)
    BEGIN
    SET @sqlCmd = @7zipPath+' x '+@WorkPath+@FileName+' -y -aos -o'+@WorkPath
    print @sqlcmd
    EXEC xp_cmdshell @sqlcmd
    END
    
    if @@fetch_status <> 0 break;
    END 
    CLOSE file_cur
    DEALLOCATE file_cur
    SET @sqlCmd = ' dir /b '+@WorkPath+'*.txt > '+@WorkPath+'FileName|del '+@WorkPath+'*.zip /Q'
    print @sqlcmd
    EXEC xp_cmdshell @sqlcmd
    DROP TABLE tempdb..#dirlisttab
    GO
    

      

    如果有来生,一个人去远行,看不同的风景,感受生命的活力。。。
  • 相关阅读:
    4.9 省选模拟赛 圆圈游戏 树形dp set优化建图
    C#异步编程の-------异步编程模型(APM)
    C#异步编程の----Threadpool( 线程池)
    C#の----Func,Action,predicate在WPF中的应用
    C#常见委托のdelegate定义,Func,Action,Predicate总结
    c++のmap的遍历
    C#深度学习の----深拷贝与浅拷贝
    NSIS学习记录の----查找注册表某个键是否存在
    WPFの操作文件浏览框几种方式
    C#Url处理类
  • 原文地址:https://www.cnblogs.com/Frank99/p/5490888.html
Copyright © 2011-2022 走看看