nnBackup 3.x, ошибка в создаваемых файл-листах

Обсуждение программы nnBackup

nnBackup 3.x, ошибка в создаваемых файл-листах

Postby shaggy » Mon, 27 Feb 2006, 13:21

Уже часа два не могу понять, в чём проблема.

Система WinXP pro sp2 rus. Настройки языка - везде русский. Никаких твиков и оптимизаций не делалось.
Пытаюсь создать файл-список. Создал две папки: c:\test, c:\test2. В папке c:\test 4 файла: 1.txt, 2.txt, 3.txt, 4.txt
nnBackup 3.x (пробовал пять версий) по команде
nnbackup.exe -i c:\test -o c:\test2 -s -v -list c:\filelist.log -nocopy
формирует файл-лист следующего содержания:
1.t㉸⸀琀砀3.t㑸⸀琀砀
(вставились какие-то иероглифы, а в текстовом файле это просто квадраты)
То же с ключом -fp
nnbackup.exe -i c:\test -o c:\test2 -s -v -fp -list c:\filelist.log -nocopy
выдаёт
c:\test捜㨀尀琀攀猀琀尀c:\test捜㨀尀琀攀猀琀尀
(квадратиков стало в два раза больше)

При этом версия 2.28 по той же команде выдаёт нормальный список:
c:\test\1.txt
c:\test\2.txt
c:\test\3.txt
c:\test\4.txt
или
1.txt
2.txt
3.txt
4.txt
соответственно.

Пути короткие, русских букв нет в принципе.
Этот список не прочитаешь даже в dos.
И что самое интересное, этот файл нельзя использовать как источник. Т.е. программа не может прочитать файл, созданный ею секунду назад.
В чём может быть проблема?
shaggy
 
Posts: 8
Joined: Tue, 12 Apr 2005, 08:21

Postby Valery_Kondakoff » Mon, 27 Feb 2006, 13:36

подтверждаю. nnBackup 3.01b17 build 66, Win2000
CU
VK
User avatar
Valery_Kondakoff
Site Admin
 
Posts: 769
Joined: Thu, 01 Jul 2004, 20:49
Location: Moscow, Russia

Postby Nicholas_Nemtsev » Mon, 27 Feb 2006, 17:10

У меня немного другой результат: в файл пишется в юникодах без разделителей строк. Спасибо! Сейчас исправлю.
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby Nicholas_Nemtsev » Mon, 27 Feb 2006, 17:27

Выложил исправленный: nnbackup301b18.exe
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby shaggy » Tue, 28 Feb 2006, 08:51

Да, список теперь создаётся, но когда доходим до русских имён файлов и папок, получаем файл-список в DOS-кодировке.
Опять те же папки c:\test, c:\test2. В папке c:\test файлы текст_1.txt, текст_2.txt, текст_3.txt, текст_4.txt и две вложенные папки: Тест1 с файлом текст_5.txt и Тест2 с файлом текст_6.txt.
На выходе получаем файл-список в DOS-кодировке:
c:\test\⥪бв_1.txt
c:\test\⥪бв_2.txt
c:\test\⥪бв_3.txt
c:\test\⥪бв_4.txt
c:\test\’Ґбв1\⥪бв_5.txt
c:\test\’Ґбв2\⥪бв_6.txt

И когда я пытаюсь использовать этот же файл-список для копирования файлов, nnbackup выдаёт ошибку и ничего не копирует. То есть не может прочитать собственный файл-список.
Поведение одинаково, если запускать с командной строки или из nnCron:
-- создание списка
Code: Select all
#( list_create_nnbackup
RunOnce
NoDel
Time: 2 11 28 2 * 2006
Action:
StartIn: "C:\Program Files\nnBackup"
ShowNormal   NormalPriority
START-APPW: C:\Program Files\nnBackup\nnbackup.exe copy -i c:\test -o c:\test2 -s -v -fp -list c:\filelist.log -nocopy
)#


-- копирование с помощью списка
#( list_copy_nnbackup
RunOnce
NoDel
Time: 2 11 28 2 * 2006
Action:
StartIn: "C:\Program Files\nnBackup"
ShowNormal NormalPriority
START-APPW: C:\Program Files\nnBackup\nnbackup.exe copy -i @c:\filelist.log -o c:\test2 -s -v
)#

После часа экспериментов поставил 2.28. Там всё работает нормально:
c:\test\текст_1.txt
c:\test\текст_2.txt
c:\test\текст_3.txt
c:\test\текст_4.txt
c:\test\Тест1\текст_5.txt
c:\test\Тест2\текст_6.txt

файлы с его помощью копируются.
И просто удобно, когда посмотреть файл-список можно через встроенный Блокнот Windows.

-----------------------------------------------------------
Два вопроса-пожелания.
1. При использовании файл-списка в качестве источника (-i) все файлы копируются в одну папку, как при использовании ключа -flat. Структура папок не сохраняется. Планируется ли возможность сохранения относительных путей (например без буквы диска, или с использованием (последней) части пути)?

2. Файл-список (судя по названию тоже) создаётся только для файлов, а создать список каталогов с его помощью нельзя. Но в некоторых случаях было бы удобно создать список из нескольких каталогов (например, если их содержимое меняется), а потом его использовать. Конечно, это можно делать в nnCron:
Code: Select all
#( list_dir_create_nncron
RunOnce
NoDel
Time: 3 11 28 2 * 2006
Action:
FILE-EXIST: "c:\filelist.log"
IF FILE-DELETE: "c:\filelist.log" THEN
RECURSIVE
FOR-FILES: "c:\test\*"
IS-DIR?
IF LOG: "c:\filelist.log" "%FOUND-FULLPATH%" THEN
;FOR-FILES
)#

но почему бы не расширить возможности файл-списка новым ключом, или ввести список только катологов, чтобы не было путаницы.
shaggy
 
Posts: 8
Joined: Tue, 12 Apr 2005, 08:21

Postby Nicholas_Nemtsev » Tue, 28 Feb 2006, 09:12

Кодировка зависит от переменной OutputEncoding. Если в backup.ini написать так: OutputEncoding 0!
то получится кодировка 1251 (предположительно, на самом деле, кодировка по умолчанию в системе)
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby Nicholas_Nemtsev » Tue, 28 Feb 2006, 11:43

shaggy wrote:1. При использовании файл-списка в качестве источника (-i) все файлы копируются в одну папку, как при использовании ключа -flat. Структура папок не сохраняется. Планируется ли возможность сохранения относительных путей (например без буквы диска, или с использованием (последней) части пути)?

Не очень понял. Можно командную строку?
shaggy wrote:2. Файл-список (судя по названию тоже) создаётся только для файлов, а создать список каталогов с его помощью нельзя. Но в некоторых случаях было бы удобно создать список из нескольких каталогов (например, если их содержимое меняется), а потом его использовать.
С каталогами не так просто всё. Ведь если включать все каталоги, то использовать этот список в качестве входной инф. для бэкапа не получится (просто будут повторения вложенных).
Nicholas Nemtsev
User avatar
Nicholas_Nemtsev
Site Admin
 
Posts: 857
Joined: Thu, 01 Jul 2004, 22:25
Location: Псков

Postby shaggy » Tue, 28 Feb 2006, 13:31

Nicholas_Nemtsev wrote:Кодировка зависит от переменной OutputEncoding. Если в backup.ini написать так: OutputEncoding 0!
то получится кодировка 1251 (предположительно, на самом деле, кодировка по умолчанию в системе)

Действительно, всё работает.
Мне кажется, большинство пользователей работают всё-таки в Windows, и стоило бы ставить этот параметр по умолчанию. Но это неважно, главное, что можно сделать. А описание переменной добавить бы в справку (не нашёл там).

-------------------------------------------------------
Командная строка (папки всё те же):
nnbackup.exe copy -i @c:\filelist.log -o c:\test2 -s -v
То есть сначала создаём файл-список каталога, в котором есть вложенные каталоги. И когда используем этот файл-список для копирования, в папке c:\test2 получим все 6 текстовых файлов вместо 4 файлов и двух папок с файлами.

С каталогами можно ограничиться первым уровнем и не искать вложенные. То есть формировать список только тех каталогов, которые присутствуют в корне указанного пути. А всё вложенное можно было бы скопировать потом с ключом -s. Сейчас это не получается опять же из-за несохранения структуры.

Два вопроса, в общем, связаны. Сейчас посмотрел и пришёл к выводу, что "хочу странного", и надо определиться поточнее.
shaggy
 
Posts: 8
Joined: Tue, 12 Apr 2005, 08:21

Postby tet_ » Tue, 07 Mar 2006, 18:28

Nicholas_Nemtsev wrote:Выложил исправленный: nnbackup301b18.exe


Если в имени файла есть "," (запятая), то не видит этого имени в списке. Точнее видит, но не так как есть на самом деле :(
tet_
 
Posts: 1
Joined: Tue, 07 Mar 2006, 18:09


Return to nnBackup forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests