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-Zip\7z.exe‘,  -- 原理即调用 7z 解压软件解压,所以  IPC 对应到相应的网络磁盘路径
@IsZipped BIT = 1   -- 输入参数,确认拷贝的 是不是 压缩文件,只有压缩文件,下面的脚本解压部分才需要执行
AS
SET @sqlCmd = ‘dir /b ‘[email protected][email protected]
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 ‘[email protected][email protected]+‘ ‘[email protected][email protected]
print @sqlcmd
EXEC xp_cmdshell @sqlcmd

IF(@IsZipped = 1)
BEGIN
SET @sqlCmd = @7zipPath+‘ x ‘[email protected][email protected]+‘ -y -aos -o‘[email protected]
print @sqlcmd
EXEC xp_cmdshell @sqlcmd
END

if @@fetch_status <> 0 break;
END
CLOSE file_cur
DEALLOCATE file_cur
SET @sqlCmd = ‘ dir /b ‘[email protected]+‘*.txt > ‘[email protected]+‘FileName|del ‘[email protected]+‘*.zip /Q‘
print @sqlcmd
EXEC xp_cmdshell @sqlcmd
DROP TABLE tempdb..#dirlisttab
GO

时间: 2024-10-10 21:52:57

usp_Copy_Unzip_DirFiles -- 拷贝,解压,列出文件名 from FTP Folder to Work Folder的相关文章

如何解决Mac里面解压后文件名乱码问题

如果你把Mac当成你的主要工作机器,而你的同事用的都是Windows,有时候交换文档就是一件很痛苦的事,比如今天要说到的问题:当同事传给你一个zip文件,结果你拿过来解压后发现里面有些文件的文件名如果带中文的话,你看到的将会是一堆乱码...Jay一直都无视这个问题,直到有一天终于忍不住了,去google了一把,终于找到了答案,这里分享一下. 其实解决方案很简单,下个软件装上吧!我们要装的软件是“The Unarchiver”.进入Mac App Store搜索 这里略去搜索和安装的过程 安装后第

解决ubuntu解压zip文件名乱码的问题

1. 安装7-zip 和 convmv : 命令: sudo apt-get install convmv p7zip-full 2. 解压zip文件: 命令:LANG=C 7z e yourZIPfilename 3. 开始转换编码 命令: convmv -f gbk -t utf8 -r --notest *

在kali linux之下 下载并解压的文件名呈现乱码 解决方案

从Linux往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码. 在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK.首先看一下你的系统上是否安装了convmv,如果没安装的话用

Ubuntu下解决解压zip文件中文文件名乱码问题

在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Windows下默认的编码是GBK.对于这个问题,主要有以下三种解决方法: 一.命令行指定解压字符集 在Ubuntu下解压来源于Windows的zip文件,中文文件名会出现乱码问题. 出现这个问题的原因是:Windows和Ubuntu使用的默认编码不相同,而且zip文件自身却不带有任何标识其编码的信息.解决方案

os与操作系统进行交互,sys解释器相关,random随机数,shutil解压和压缩

1.os 与操作系统相关 对文件的处理 对路径的处理 import os#主要用于与操作系统进行交互 掌握: print(os.makedirs('a/b/c'))#创建目录 可用递归创建 print(os.mkdir('AA'))#创建一个目录,名字中不能加/ os.removedirs('a/b/c')#递归删除,如果没有文件删除,有文件则保留 os.rmdir('AA')#删除一个目录 os.remove(r'xx')#删除文件,仅仅能删除文件 os.listdir(r'xx')#列出所有

C#使用Expand、Shell32解压Cab、XSN文件

前言: 需要解压InfoPath表单的xsn文件,在项目中以前使用的是Expand命令行解压,都没有出过问题,近段时间项目中突然报错解压失败,通过分析解压操作得出结论: 1.正常正常情况下,expand命令行解压没有任何问题,同一个站点,相同的请求,随机出现解压失败的错误.而且最容易复现的情况为:高频率刷新页面. 2.监视解压的目标目录,解压失败的时候,目录没有任何变化.而解压成功时,目录监视则正常. 然后将expand命令放到bat文件中,在bat文件中,执行expand命令之前,先执行 “m

linux-压缩与解压之 gzip 命令

gzip命令:文件的压缩 gzip属于GNU软件,是linux系统首选的压缩工具,tar归档命令的-z选项压缩也是利用gzip/gunzip来压缩/解压文件. gzip生成.gz文件 语法: gzip [选项] [文件或目录...] 参数: -c 或--stdout或 --to-stdout  将压缩(解压)的内容输出到标准输出设备上,并保留原有文件 -d 或--decompress  解压 -l 或--list 如果目标文件是压缩文件,则显示压缩大小,解压后大小,压缩比率,解压后文件名. -r

ubuntu解压zip文件中文乱码问题

通过unzip行命令解压,指定字符集 unzip -O CP936 xxx.zip 注:xxx.zip为需要解压的文件名 ubuntu解压zip文件中文乱码问题

hadoop streaming -archives 解压jar、zip、tar.gz的验证

1.archives作用描述: Hadoop中DistributedCache方法之一(其他参考文章后面的参考文章) ,作用是 将指定文件分发到各个Task的工作目录下,并对名称后缀为".jar".".zip",".tar.gz".".tgz"的文件自动解压,默认情况下,解压后的内容存放到工作目录下名称为解压前文件名的目录中,比如压缩包为dict.zip,则解压后内容存放到目录dict.zip中.为此,你可以给文件起个别名/软