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 '+@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
usp_Copy_Unzip_DirFiles -- 拷贝,解压,列出文件名 from FTP Folder to Work Folder的更多相关文章
- 如何解决Mac里面解压后文件名乱码问题
如果你把Mac当成你的主要工作机器,而你的同事用的都是Windows,有时候交换文档就是一件很痛苦的事,比如今天要说到的问题:当同事传给你一个zip文件,结果你拿过来解压后发现里面有些文件的文件名如果 ...
- 解决Linux与Windows压缩解压中文文件名乱码(转载)
转自:http://crazyfeng.com/linux-windows-compress-chinese-filename.html 由于Linux与Windows编码问题,使用Zip Tar 压 ...
- 解决ubuntu解压zip文件名乱码的问题
1. 安装7-zip 和 convmv : 命令: sudo apt-get install convmv p7zip-full 2. 解压zip文件: 命令:LANG=C 7z e yourZIPf ...
- linux unzip 解压后文件名乱码
在windows上zip的包,rz上传到linux下,发现出现乱码.记录下解决过程: 1.确定windows上的默认字符集 在Windows平台下,直接在命令行中,输入:chcp 在显示的结果中,会出 ...
- 在kali linux之下 下载并解压的文件名呈现乱码 解决方案
从Linux往 windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名中文编码默认为GBK,而Linux中默认 ...
- unzip解压中文文件名乱码
由于中文的Windows使用的是GBK编码,而Linux默认使用UTF-8编码的,如果在Windows打包带中文文件的zip包,则这个zip包在Linux下面使用默认的归档管理器打开这个zip包的时候 ...
- Ubuntu下解决解压zip文件中文文件名乱码问题
在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Window ...
- Java中解压文件名有中文的rar包出现乱码问题的解决
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...
- os与操作系统进行交互,sys解释器相关,random随机数,shutil解压和压缩
1.os 与操作系统相关 对文件的处理 对路径的处理 import os#主要用于与操作系统进行交互 掌握: print(os.makedirs('a/b/c'))#创建目录 可用递归创建 print ...
随机推荐
- 文件频繁IO能有多大的差别
测试文件写同样大小的文件,单次记录较小和单次记录较大能有多大的性能差别. 最终写入同样大小的文件,小记录需要写入10w次,大记录需要写入1w次,看下最终的性能报告
- jquery formValidate demo 采用struts 异步方式检验用户名是否存在
1 login.jsp <%@taglib uri="/struts-tags" prefix="s"%><!DOCTYPE html PUB ...
- 【不积跬步,无以致千里】安装roundcube 时出现 “DSN (write): NOT OK(SQLSTATE[HY000] [2002] No such file or directory)”
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- java 搭建webservice服务+testclient測试
整理别人的日志: 一.什么是webservice 一种构建应用程序的普遍模型,能够在不论什么支持网络通信的操作系统中执行.一种新的web应用程序分支,能够公布.定位通过web调用.它是一个应用组件,为 ...
- vector<int> v2 = 42; 为何非法
C++ Primer 第四版,第十三章“复制控制” 习题13.2,为何vector<int> v2 = 42; 不能编译? 百度贴吧里的一位楼主给出了答案,本人认为正确,特此引用: 参考链 ...
- JUnit中测试异常抛出的方法
最近在做TWU关于TDD的作业,对JUnit中测试异常抛出的方法进行了一些学习和思考. 在进行单元测试的时候有的时候需要测试某一方法是否抛出了正确的异常.例如,我有一个方法,里面对一个List进行读取 ...
- C# Tcp协议收发数据
运行这个程序前需要先关闭Windows防火墙,Win7系统关闭防火墙的方法是在控制面板的“控制面板\系统和安全\Windows 防火墙\自定义设置”路径中,将“家庭或工作(专用)网络位置设置”和“公用 ...
- dl-ssl.google.com
转载:http://jingyan.baidu.com/article/64d05a02752300de55f73b99.html 搭建Android就会用到Android SDK,而安装SDK有个恶 ...
- Debian下MySQL配置
1 安装 $ apt-get install mysql-server $ apt-get install mysql-client 2 修改MySQL的口令 一般上一步会让你输入root密码,如果没 ...
- c语言指针难点
先来一个例子 例: #include "stdio.h" int main() { ] = {,,,,}; printf("a是一个地址%d\n",a); pr ...