judipav
26-04-2013, 22:31
Доброго времени суток уважаемые форумчане!
захотелось мне тут немного поиграться.
есть файл с данными - хочу его разобрать bat-ником и загнать в mysql в процессе каждую строку файла с данными на выходе пронумеровать счетчиком.
скрипт нехитрый но то ли лыжи не едут то ли что-то идет "не так".
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM создаем таблицу в базе
C:\AppServ\MySQL\bin\mysql.exe -u root --password=123456 -e "USE `hardware`; CREATE TABLE `1` (`id` int not null, `desc` varchar(255), `count` int); "
set /a CNT=1 REM счетчик строк
for /f "tokens=1,2 delims=;" %%k in (1.txt) do (
C:\AppServ\MySQL\bin\mysql.exe -u root --password=123456 -e "USE `hardware`; INSERT INTO `1` VALUES (%CNT%, '%%k', %%l); "
set /a CNT+=1 REM по-идее должен инкрементировать но...
)интересуют две вещи:
во-первых текстовый файл и поле desc в кодировке cp1251, в поле desc вместо русских букв я получаю знаки вопроса.
безуспешно игрался с кодировками файла и поля desc, использовал utf8_general_ci при этом изменял запрос на
INSERT INTO `1` VALUES ('%CNT%', CONVERT('%%k' USING utf8), %%l); в результате поле вообще остается пустым
во-вторых счетчик CNT всегда равен "1"
захотелось мне тут немного поиграться.
есть файл с данными - хочу его разобрать bat-ником и загнать в mysql в процессе каждую строку файла с данными на выходе пронумеровать счетчиком.
скрипт нехитрый но то ли лыжи не едут то ли что-то идет "не так".
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM создаем таблицу в базе
C:\AppServ\MySQL\bin\mysql.exe -u root --password=123456 -e "USE `hardware`; CREATE TABLE `1` (`id` int not null, `desc` varchar(255), `count` int); "
set /a CNT=1 REM счетчик строк
for /f "tokens=1,2 delims=;" %%k in (1.txt) do (
C:\AppServ\MySQL\bin\mysql.exe -u root --password=123456 -e "USE `hardware`; INSERT INTO `1` VALUES (%CNT%, '%%k', %%l); "
set /a CNT+=1 REM по-идее должен инкрементировать но...
)интересуют две вещи:
во-первых текстовый файл и поле desc в кодировке cp1251, в поле desc вместо русских букв я получаю знаки вопроса.
безуспешно игрался с кодировками файла и поля desc, использовал utf8_general_ci при этом изменял запрос на
INSERT INTO `1` VALUES ('%CNT%', CONVERT('%%k' USING utf8), %%l); в результате поле вообще остается пустым
во-вторых счетчик CNT всегда равен "1"