一个批量处理CSV文件插入到MySQL的dos脚本

1,编写dos命令批处理脚本,用于解压目录里的zip包里面的csv文件

        可执行文件名:movezip.bat

@echo off
setlocal

:: 设置源目录和目标目录,请替换下面的路径
set sourceDir=E:\tmp\
set targetDir=E:\tmp\csv\

echo 1 %sourceDir%
echo 1 %targetDir%

del %targetDir%*.csv

REM 查找源目录及其所有子目录下的zip文件
for /r %sourceDir% %%z in (*.zip) do (
    echo "%%z"
 ::   copy "%%z" D:\tmp\
	"C:\Program Files\7-Zip\7z.exe" x -o"%targetDir%" "%%z"
)

endlocal

2,循环处理csv文件,导入mysql

可执行文件名:insert.bat

@echo off

setlocal enabledelayedexpansion

:: MySQL数据库参数
set "dbHost=10.0.0.112"
set "dbPort=3306"
set "dbName=db_test"
set "dbUser=root"
set "dbPassword=123456"

:: CSV文件所在目录
set "directory=E:\\tmp\\csv\"

:: 目标MySQL表名
set "tableName=tk_gov_vatinvoice1"

set "sql_file=load_data.sql"

:: 遍历目录下的所有CSV文件
for %%f in ("%directory%\*.csv") do (
	
	echo LOAD DATA LOCAL INFILE '%%f' INTO TABLE !tableName! FIELDS TERMINATED BY ',' ENCLOSED BY '^"' LINES TERMINATED BY '\r\n' IGNORE 1 ROWS (comcode,comname,@var2,@var3,@var8,@var4,sellername,@var5,buyername,billingtime,fee,tax,@var6,billtypeinvoice,billstate,billrisk,@var7,@var1^) SET billingno=REPLACE^(@var2,'\'',''^),dayidx=STR_TO_DATE(@var1, ^'%%^Y-%%m-%%d'^),billingcode=REPLACE^(@var3,'\'',''^),sellernumber=REPLACE^(@var4,'\'',''^),buyernumber=REPLACE^(@var5,'\'',''^),datasource=REPLACE^(@var6,'\'',''^),billdirection=REPLACE^(@var7,'\'',''^),digiteleinvoice=REPLACE^(@var8,'\'',''^); > !sql_file!		
	
	mysql -h %dbHost% -P %dbPort% -u %dbUser% -p%dbPassword% %dbName% < !sql_file!
)

endlocal

3,仔细按照目录路径放好,执行bat文件即可

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值