Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Синхронизация каталогов с учетом регистра

 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Sat Apr 21, 2012 11:52    Post subject: Синхронизация каталогов с учетом регистра Reply with quote

Можно ли провести синхронизация каталогов с учетом регистра?
Или хотя бы как-то пометить, что регистр файлов в каталогах различается.
Видел похожую тему про копирование файлов. Стандартными средствами Тотала не обойтись, как понимаю?
На всякий случай файловая система NTFS в обоих каталогах, TC 7.57а.
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sat Apr 21, 2012 12:50    Post subject: Reply with quote

Вообще, в Windows регистр символов в именах не играет роли, поэтому нет смысла его учитывать. Думаю, стандартными средствами тотала не обойтись.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Apr 21, 2012 20:43    Post subject: Reply with quote

Code:
@echo off &setlocal enableextensions &chcp 1251 >nul

if "%~2"=="" (echo Use: "C:\name\" "D:\sake\" &pause >nul &goto :eof)
call :ren "%~1" "%~2"

for /f "delims=" %%d in ('dir /b/ad/s "%~1"') do (
   set "name=%%d"
   call :ren "%%d" "%~2\%%name:%~1=%%"
)
goto :eof

:ren
set "T=%~2"
for /f "delims=" %%n in ('dir /b/a-d "%~1"') do (
   for /f "delims=" %%t in ('dir /b/a-d "%T%\%%n" 2^>nul') do (
      if not "%%n"=="%%t" ren "%T%\%%n" "%%n"
   )
)
goto :eof

только переименовывает, и только файлы
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6189
Location: Москва

Post (Separately) Posted: Sun Apr 22, 2012 16:00    Post subject: Reply with quote

K.Blade
В принципе, Тотал умеет учитывать регистр, но использует этот механизм исключительно в ситуациях, когда обнаруживает в одном каталоге несколько файлов, имеющих одинаковые имена с разным регистром (например, в архивах, на FTP или на линуксовых сетевых ресурсах). В этом случае он выдаёт предупреждение и использует регистр для того, чтобы сопоставить друг другу правильные пары файлов. Использовать его для поставленной задачи не получится, и вряд ли Гислер будет когда-нибудь реализовывать полноценную поддержку. Всё-таки, Тотал — это именно виндовое приложение, а в виндовых системах, как правильно заметил MVV, регистр не учитывается.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Mon Apr 23, 2012 01:10    Post subject: Reply with quote

Жаль, попробую отловить изменения по дате.
А такой вопрос (он видно немного уходит за тематику раздела) плагином это как-то можно? Контентетным, например?..
---
Tol!k
Прощу прошения, а что именно этот скрипт делает? Какие файлы он переименовывает и во что?
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Apr 23, 2012 01:28    Post subject: Re: Синхронизация каталогов с учетом регистра Reply with quote

K.Blade wrote:
регистр файлов в каталогах различается.

Различающиеся регистром и переименовывает.
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6189
Location: Москва

Post (Separately) Posted: Mon Apr 23, 2012 02:01    Post subject: Reply with quote

K.Blade wrote:
А такой вопрос (он видно немного уходит за тематику раздела) плагином это как-то можно? Контентетным, например?..

В принципе, существует возможность написать плагин, который будет сравнивать регистр имён файлов, и вставить его в инструмент синхронизации в расширенное сравнение по содержимому. Но каталоги так пометить в любом случае не выйдет, только файлы.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2686

Post (Separately) Posted: Mon Apr 23, 2012 14:16    Post subject: Reply with quote

K.Blade wrote:
Или хотя бы как-то пометить, что регистр файлов в каталогах различается.
В каждой из интересующих директорий выделить файлы/каталоги и сохранить выделение в файл, затем полученные файлы сравнить внутренним инструментом с учётом регистра символов.
Back to top
View user's profile Send private message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Mon Apr 23, 2012 16:40    Post subject: Reply with quote

Tol!k
Я может немного некорректно написал, но у меня есть каталог скажем TEST1 в котором есть файл "Test Of File.txt" и есть каталог TEST2 с файлом "Test of File.txt". Если они одинаковые по содержимому, то синхронизация каталогов не найдет различия.
Мне бы хотелось, чтобы она указала, что это разные файлы или, что они не совпадают. Можно также как-то отметить файлы в каталоге, скажем, TEST2, которые не совпадают с учетом регистра с файлами в каталоге TEST1, чтобы я потом мог вручную их переименовать.
---
sa
А вот это отличный вариант. Либо через выделения, либо использовать плагины, которые строит список файлов в директориях.
---
CaptainFlint
Понятно. Спасибо, я тогда позже создам в соответствующем разделе тему для поиска - вроде есть плагины, которые так или иначе возвращают имя файла, может среди них кто ореинтируется.
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6189
Location: Москва

Post (Separately) Posted: Mon Apr 23, 2012 16:54    Post subject: Reply with quote

K.Blade wrote:
Понятно. Спасибо, я тогда позже создам в соответствующем разделе тему для поиска - вроде есть плагины, которые так или иначе возвращают имя файла, может среди них кто ореинтируется.

Простого возврата имени недостаточно — иначе и встроенный плагин tc подошёл бы. Плагин должен реализовать специфичную функцию сравнения, которая принимает на вход два файла: это новая функция, введённая в 7.55, и реализуют её лишь немногие плагины.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Apr 23, 2012 17:39    Post subject: Reply with quote

K.Blade wrote:
у меня есть каталог скажем TEST1 в котором есть файл "Test Of File.txt" и есть каталог TEST2 с файлом "Test of File.txt".
бат переименовывает все похожие имена в пассивной панели (и её подкаталогах) в тот регистр, в котором они написаны в активной панели
Сами файлы не копируются.

Exclamation осторожнее с уникодом и символами типа % и ^
Back to top
View user's profile Send private message
K.Blade



Joined: 18 Mar 2009
Posts: 43

Post (Separately) Posted: Wed Apr 25, 2012 00:56    Post subject: Reply with quote

Tol!k
Разобрался, в первый раз у меня что-то не получилось. Очень полезно, избавит от руной работы. Благодарю!
Означенных символов вроде нет.
#,',& и куча скобок присуствуют.

---
Создал тему-запрос на плагин для сравнения, вдруг кто поможет: http://forum.wincmd.ru/viewtopic.php?p=91715
Надеюсь поступил правильно, чтобы запрос на плагин был в нужном разделе, а не здесь.
_________________
#204651 Single user licence
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group