Слишком длинная команда для создания резервной копии

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
Junior
Сообщения: 3
Зарегистрирован: 10 окт 2006, 18:50

Слишком длинная команда для создания резервной копии

Сообщение Junior » 10 окт 2006, 18:54

Имеем длинную (более 3 тыс символов) команду на создание резервной копии БД Interbase с помощью утилиты gbak.exe. Такая команда, записанная в bat-файл одной строкой, приводит к невозможности выполнить созданный bat-файл (размер 1-ой команды получается больше 2Кб) Пробовал с перенаправлением ввода/вывода - не получается =(( Признателен за помощь по данному вопросу !

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 10 окт 2006, 19:49

проблема, насколько я понимаю, связана с размером буфера команд windows. поэтому вопрос не в кассу.
и вообще, не надо так делать, чтобы командная строка была в 3000 символов. к чему такие длинные пути? Врагов запутывать?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 11 окт 2006, 07:57

Не, путями такой длины не набрать. Похоже, у него пережиток темных времен - разбиение бэкапа на куски.

Junior
Сообщения: 3
Зарегистрирован: 10 окт 2006, 18:50

Сообщение Junior » 11 окт 2006, 11:25

Dimitry Sibiryakov писал(а):Не, путями такой длины не набрать. Похоже, у него пережиток темных времен - разбиение бэкапа на куски.
да, в вопросе разобрался. спасибо =)

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 11 окт 2006, 14:02

Dimitry Sibiryakov писал(а):Не, путями такой длины не набрать. Похоже, у него пережиток темных времен - разбиение бэкапа на куски.
Нуу... если постараться... начать, например с такого

Код: Выделить всё

C:\Хрень по работе\Гемор\Тупые клиенты\Неплательщики\о*уевшие\Уважаемый Сергей Анатольевич.doc
где спёр - не помню.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 11 окт 2006, 14:27

Старый баян. Но по-любому в винде MAX_PATH == 255. Даже если не использовать алиасы, для одиночного файла бэкапа получается 512. Чем он забил остальные 2488 - лично мне не ясно. Не именем же пользователя и паролем...

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 13 окт 2006, 01:41

http://amdf.pp.ru/longpath.php
Цитаты оттуда:
"Как известно, длина имени файла в Windows ограничена 256 символами. В программировании используется константа MAX_PATH, которая равна 260."
"...То есть, ничто не мешает нам, используя префикс "\\?\", создать путь с длиной большей, чем 260 символов."
"...На дискете удалось создать путь длиной примерно 32000 символов."
И чем еще можно использовать три тысячи символов, кроме как путями?

Junior
Сообщения: 3
Зарегистрирован: 10 окт 2006, 18:50

Сообщение Junior » 16 окт 2006, 12:34

спасибо за ссылку - полезно для меня =) конечно же - путями к файлам я строку и забил 8) забавный в общем эксперимент вышел...

Ответить