我是批处理脚本的新手,正在努力编写一些可以:1) 读取csv的第一列并将这些值设置为变量。2) 编写一个简短的sql语句脚本,将所有这些变量添加到where子句中。仅此而已。。。我已经做了:csv文件(要添加的变量)csv文件批次代码批次代码结果脚本:脚本我需要的是:批处理的mysql脚本结果有什么想法可以分享吗?
093gszye1#
@echo off setlocal set "_InputFile=%userprofile%\Desktop\FC3.txt" set "seq=" for /f "tokens=1 delims=," %%A in (%_InputFile%) do ( call set "seq=%%seq%%%%~A," ) set "seq=(%seq:~,-1%)" > FinalStage.sql echo SELECT * FROM Totalfm3 WHERE Totalfm3.BRN IN %seq% exit /b ``` `%userprofile%` 预计是 `C:Users\Martin` 用你的帐户。 `%seq%` 存储以逗号分隔的数字。 这个 `call set` 一个附加的解析是否如此 `%%seq%%` 计算的变量名的值 `seq` 不需要延迟扩张。 `set "seq=(%seq:~,-1%)"` 修剪最后一个逗号,并在逗号分隔的值周围添加括号。 最后,将sql语句写入文件。 你家里的代币 `for` 循环与csv文件示例不匹配。我将代币设置为 `1` 以匹配csv文件示例。您可能需要调整代币以满足您的需要。 使多行语句。 更改:
FinalStage.sql echo SELECT * FROM Totalfm3 WHERE Totalfm3.BRN IN %seq%
到
(echo SELECT * FROM Totalfm3echo WHERE Totalfm3.BRN IN %seq%;) > FinalStage.sql
补充 `;` 在语句末尾,因为mysql就是这样结束语句的。
1条答案
按热度按时间093gszye1#
(
echo SELECT * FROM Totalfm3
echo WHERE Totalfm3.BRN IN %seq%;
) > FinalStage.sql