Поддержка нестандартных символов в названия каталогов

Обсуждение программ nnCron и nnCron LITE

Поддержка нестандартных символов в названия каталогов

Postby SphinxST » Tue, 11 Apr 2017, 10:55

Приветствую.

У меня используется простой скрипт для сканирования папки DropBox на наличие конфликтных файлов. Сегодня выяснил, что он падает с ошибкой, если внутри дерева есть каталоги с греческими символами. При этом на файлы названные по гречески не ругается. Это я что-то напутал или проблема в кроне?

Ошибка
Code: Select all
10:44:01 2956 ST HOME_DESK_Weekly: Internal error. The filename, directory name, or volume label syntax is incorrect.

Код
Code: Select all
#( HOME_DESK_Weekly
   RunMissed
   LoadProfile
   Time: 0 10 * * Mon *
   Action:
   DROPBOX_CONFLICTS FCREATE
      RECURSIVE SKIPERRORS
      FOR-FILES: "%FOLDER-PERSONAL%\..\Dropbox\*conflict*"
         " %FOUND-FULLPATH%|n" DROPBOX_CONFLICTS FAPPEND
      ;FOR-FILES
   " === DROPBOX_CONFLICTS end|n" DROPBOX_CONFLICTS FAPPEND
)#
SphinxST
 
Posts: 18
Joined: Thu, 17 Nov 2011, 12:27

Re: Поддержка нестандартных символов в названия каталогов

Postby VoidVolker » Wed, 12 Apr 2017, 10:23

По идее все должно работать - ведь доступ к файлам идет через WINAPI. Можно пару примеров таких названий?
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Поддержка нестандартных символов в названия каталогов

Postby SphinxST » Wed, 12 Apr 2017, 10:43

Вот и меня удивило, что на файлы не ругается, а на каталоги падатет task.
Пример, который был у меня - назваиние школы: Το Κρυφό Σχολείο

Да, и пара деталей
Code: Select all
nncron.exe v 1.93b10 Build 1141 03.12.2009
tm.exe v 1.93b10 Build 569 03.12.2009
Directory: C:\!ST\Tools\nn\nnCron
Windows Server 2003 (6.2.9200)
shell32.dll 10.0.10011


Ошибка повторена на Win7 и Win10.
SphinxST
 
Posts: 18
Joined: Thu, 17 Nov 2011, 12:27

Re: Поддержка нестандартных символов в названия каталогов

Postby VoidVolker » Fri, 14 Apr 2017, 15:43

Не воспроизводится. Создал каталог с указанным именем и прошелся по нему циклом FOR-FILES - указанный каталог нашелся и спокойно обработался.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Поддержка нестандартных символов в названия каталогов

Postby SphinxST » Sat, 22 Apr 2017, 18:14

VoidVolker wrote:Не воспроизводится. Создал каталог с указанным именем и прошелся по нему циклом FOR-FILES - указанный каталог нашелся и спокойно обработался.

Хорошо, попробую на версии у тебя в подписи.
У меня стабильно крон падает как я описал выше. После переименования каталога на латиницу - отрабатывает.

Еще одна проблема, в отработке расписания по дням недели. В случае записи как ниже - выполняется не в четверг и пятницу утром (пробовал и Thu-Fri тоже). Как отрабатывает, до конца не разобрался, но как минимум, захватывает субботу. При том что комп включен весь день и четверг и пятницу.
Code: Select all
#( Backup
   RunMissed
   LoadProfile
   Time: 0 8 * * 4-5 *

Если это поможет - у меня региональные настройки такие: English US, Первый день недели - Sunday
К сожалению, картинку вставить не могу, при сжатии до 200 пикселов - не читаема.
SphinxST
 
Posts: 18
Joined: Thu, 17 Nov 2011, 12:27

Re: Поддержка нестандартных символов в названия каталогов

Postby dothen » Tue, 25 Apr 2017, 00:11

SphinxST wrote:У меня используется простой скрипт для сканирования папки DropBox на наличие конфликтных файлов. Сегодня выяснил, что он падает с ошибкой, если внутри дерева есть каталоги с греческими символами. При этом на файлы названные по гречески не ругается. Это я что-то напутал или проблема в кроне?

nnCron использует ANSI-версии функций WinAPI, и читает имена папок и файлов как ANSI-строки.
Но ошибка возникает только при ОБРАЩЕНИИ по имени, к папке или файлу с юникодным именем.

Можно сделать например так:
Code: Select all
#( HOME_DESK_Weekly
   RunMissed
   LoadProfile
   Time: 0 10 * * Mon *

\ Пути возьмем в кавычки т.к. могут быть пробелы.
: DIRIN   ( -- a u ) " %QUOTE%%FOLDER-PERSONAL%\*conflict*%QUOTE%" ;
: FILEOUT ( -- a u ) " %QUOTE%%DROPBOX_CONFLICTS%%QUOTE%" ;

Action:
    " %DD%.%MM%.%YY% %hh%:%mm% === DROPBOX_CONFLICTS Start|n" S>UNICODE 2* DROPBOX_CONFLICTS FAPPEND
    0 " cmd /u /c dir %DIRIN% /s /b >>%FILEOUT%" StartAppWait DROP
    " %DD%.%MM%.%YY% %hh%:%mm% === DROPBOX_CONFLICTS Stop|n|n" S>UNICODE 2* DROPBOX_CONFLICTS FAPPEND
)#
Лог пишется в кодировке UTF-16 LE
dothen
 
Posts: 184
Joined: Mon, 16 Mar 2015, 04:58


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 1 guest