@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 Totalfm3
echo WHERE Totalfm3.BRN IN %seq%;
) > FinalStage.sql
Добавлен ;
в конце оператора, так как MySQL заканчивает оператор.