gpt4 book ai didi

mysql - 批处理文件操作csv并使用mysql导入

转载 作者:行者123 更新时间:2023-11-29 09:35:49 25 4
gpt4 key购买 nike

我正在尝试使用批处理脚本CSV导入到mySQL。将 csv 导入到 mysql 的部分可以工作,但如果 csv 文件包含空字段(如苹果、香蕉、猕猴桃),则它不会无法正常工作。

所以我想做的是预先操作 csv 文件,以便用 ,, 替换 ,, 。我试图在网上找到一些代码来实现这一目标,因为这是我的第一个批处理脚本,但它不起作用。

这是我的批处理脚本:

@echo off 
setlocal enableextensions disabledelayedexpansion

set "search=,,"
set "replace=, ,"

set "textFile=eform.csv"

for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
set "line=%%i"
setlocal enabledelayedexpansion
>>"%textFile%" echo(!line:%search%=%replace%!
endlocal
)
@echo on
C:\xampp\mysql\bin\mysqld
C:\xampp\mysql\bin\mysql -u root -p kepdb_db < infile.sql
pause

如果此脚本有效,并且 csv 文件包含 3 个连续的空字段 -> apple,,,,banana 那么它将转换为 -> apple, , , ,banana 苹果、、、、香蕉 ??

最佳答案

插入行:

set "line=!line:%search%=%replace%!"

就在该行之前:

>>"%textFile%" echo(!line:%search%=%replace%!

自从使用sub-string substitution功能从左到右扫描字符串进行替换,已经处理的字符不参与进一步的替换。因此,,,, 变为 , ,,,因为第二个 , 已由前一个替换处理,因此第三个是独立的。出于同样的原因,,,,, 变为 , ,, , 等。因此您必须进行第二次扫描和更换。

请注意,当任何字段值单独包含 , 序列时,这可能会产生意外结果(当值被引用时可能会出现这种情况,例如 apple,"ora,,nge",,,banana;这将被修改为 apple,"ora,,nge", , ,banana 因为不考虑引号,尽管 apple,"ora,,nge “,,,,香蕉是正确的)。

关于mysql - 批处理文件操作csv并使用mysql导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57622921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com