inzaim
12-08-2015, 11:53
При снятии дампа с mysql через phpmyadmin получаю на выходе
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
DROP TABLE IF EXISTS `files`;
CREATE TABLE IF NOT EXISTS `files` (
`disk` varchar(255) default NULL,
`hl` varchar(255) default NULL,
`ll` varchar(255) default NULL,
`extensions` varchar(255) default NULL,
`date` datetime default NULL,
`size` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\dir\\', 'files', '.xml', '2015-08-07 11:13:00', 389);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\dir\\', '07.08.2015', '.xml', '2015-08-07 16:04:00', 561);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\', 'mysqldump', '.exe', '2008-02-13 13:00:00', 2146944);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\', 'files', '.sql', '2015-08-07 11:35:00', 0);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\', 'DirToXML', '.bat', '2015-08-07 15:59:00', 5375);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\dir\\', 'files', '.xml', '2015-08-07 11:13:00', 389);
Но когда при помощи скрипта
chcp 65001
echo -- > C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo DROP TABLE IF EXISTS `files`; >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo CREATE TABLE IF NOT EXISTS `files` ( >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `disk` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `hl` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `ll` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `extensions` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `date` datetime default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `size` double default NULL >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo ) ENGINE=MyISAM DEFAULT CHARSET=utf8; >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
for /f "delims=" %%a in ('dir %1 /S /B /A:-D-L') do @(
>nul ping -n 1 -w 1 ""
>>"C:\Users\admin\Documents\filemonsql\dir\%date%.sql" echo INSERT INTO `files` VALUES ('%%~da', '\%%~pa\', '%%~na', '%%~xa', '%%~ta', %%~za^)^;
)
@pause
Собираю содержимое каталога или диска, то на выходе получаю немного отличающуюся информацию:
DROP TABLE IF EXISTS `files`;
CREATE TABLE IF NOT EXISTS `files` (
`disk` varchar(255) default NULL,
`hl` varchar(255) default NULL,
`ll` varchar(255) default NULL,
`extensions` varchar(255) default NULL,
`date` datetime default NULL,
`size` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', '07.08.2015', '.sql', '07.08.2015 16:11', 557);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'DirToXML', '.bat', '11.08.2015 15:59', 5001);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'DirToXML_rezerv', '.bat', '07.08.2015 15:59', 5375);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'impotTOmysql', '.bat', '07.08.2015 16:42', 389);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'mysql', '.bat', '07.08.2015 16:53', 56);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'mysqldump', '.exe', '13.02.2008 13:00', 2146944);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'spy off', '.bat', '10.08.2015 16:37', 3955);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\dir\\', '10.08.2015', '.xml', '11.08.2015 10:19', 37955313);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\dir\\', '11.08.2015', '.sql', '11.08.2015 16:00', 1370);
При попытке засунуть инструментами phpmyadmin дамп в базу, то в строке с адресом расположения файла пропадают двойные слешы, а одинарный просто пропадает и в бд я имею на выходе следующую строку
\UsersadminDocumentsfilemonsqldir\
Что за ерись и как её побороть?
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
DROP TABLE IF EXISTS `files`;
CREATE TABLE IF NOT EXISTS `files` (
`disk` varchar(255) default NULL,
`hl` varchar(255) default NULL,
`ll` varchar(255) default NULL,
`extensions` varchar(255) default NULL,
`date` datetime default NULL,
`size` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\dir\\', 'files', '.xml', '2015-08-07 11:13:00', 389);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\dir\\', '07.08.2015', '.xml', '2015-08-07 16:04:00', 561);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\', 'mysqldump', '.exe', '2008-02-13 13:00:00', 2146944);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\', 'files', '.sql', '2015-08-07 11:35:00', 0);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\', 'DirToXML', '.bat', '2015-08-07 15:59:00', 5375);
INSERT INTO `files` VALUES ('C:', '\\Users\\admin\\Documents\\filemonsql\\dir\\', 'files', '.xml', '2015-08-07 11:13:00', 389);
Но когда при помощи скрипта
chcp 65001
echo -- > C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo DROP TABLE IF EXISTS `files`; >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo CREATE TABLE IF NOT EXISTS `files` ( >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `disk` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `hl` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `ll` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `extensions` varchar(255) default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `date` datetime default NULL, >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo `size` double default NULL >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
echo ) ENGINE=MyISAM DEFAULT CHARSET=utf8; >> C:\Users\admin\Documents\filemonsql\dir\%date%.sql
for /f "delims=" %%a in ('dir %1 /S /B /A:-D-L') do @(
>nul ping -n 1 -w 1 ""
>>"C:\Users\admin\Documents\filemonsql\dir\%date%.sql" echo INSERT INTO `files` VALUES ('%%~da', '\%%~pa\', '%%~na', '%%~xa', '%%~ta', %%~za^)^;
)
@pause
Собираю содержимое каталога или диска, то на выходе получаю немного отличающуюся информацию:
DROP TABLE IF EXISTS `files`;
CREATE TABLE IF NOT EXISTS `files` (
`disk` varchar(255) default NULL,
`hl` varchar(255) default NULL,
`ll` varchar(255) default NULL,
`extensions` varchar(255) default NULL,
`date` datetime default NULL,
`size` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', '07.08.2015', '.sql', '07.08.2015 16:11', 557);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'DirToXML', '.bat', '11.08.2015 15:59', 5001);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'DirToXML_rezerv', '.bat', '07.08.2015 15:59', 5375);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'impotTOmysql', '.bat', '07.08.2015 16:42', 389);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'mysql', '.bat', '07.08.2015 16:53', 56);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'mysqldump', '.exe', '13.02.2008 13:00', 2146944);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\\', 'spy off', '.bat', '10.08.2015 16:37', 3955);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\dir\\', '10.08.2015', '.xml', '11.08.2015 10:19', 37955313);
INSERT INTO `files` VALUES ('C:', '\\Users\admin\Documents\filemonsql\dir\\', '11.08.2015', '.sql', '11.08.2015 16:00', 1370);
При попытке засунуть инструментами phpmyadmin дамп в базу, то в строке с адресом расположения файла пропадают двойные слешы, а одинарный просто пропадает и в бд я имею на выходе следующую строку
\UsersadminDocumentsfilemonsqldir\
Что за ерись и как её побороть?