|
Название | BatchCopyDate |
Имя файла (*.txt) | BatchCopyDate.txt |
Описание | Присваивает дату и время создания и изменения файлов в противоположной панели (источник) одноименным файлам в текущей панели (приемник) |
Автор | Вахмурка |
Параметры |
"%P", "%T" Параметр 1: директория, содержащая файлы с измененными датой и временем Параметр 2: директория, содержащая файлы с образцовыми датой и временем (можно поменять местами в процессе выполнения скрипта) |
Вызываемые плагины | file, miscplugin, osd |
Иконка | |
Версия | 1.1 |
Дата обновления | 16.06.2014 |
args ToPath, FromPath local Date, Time, Temp, ToList, ToFiles, FromList, FromFiles, i, j local One, Other, ToName, FromName local Counter local mpDlgText local mpDlgCaption = "Batch Date & Time Change" local mpIcon = "QUESTION" @Start ToList = file.listfiles(ToPath, 0, 0) ToFiles = line(ToList, 0) FromList = file.listfiles(FromPath, 0, 0) FromFiles = line(FromList, 0) mpDlgText = "Source path is '" ++ ToPath ++ "' , containing " ++ ToFiles ++ " files." mpDlgText = mpDlgText ++ "\nTarget path is '" ++ FromPath ++ "' , containing " mpDlgText = mpDlgText ++ FromFiles ++ " files." mpDlgText = mpDlgText ++ "\n\nAre you sure to copy date && time from " ++ FromPath mpDlgText = mpDlgText ++ " to " ++ ToPath mpDlgText = mpDlgText ++ "?\nPress 'Exchange' to exchange Source <-> Target" Temp = MiscPlugin.messagebox(1, "&Go!", "E&xchange", "&Cancel") if(Temp == "&Cancel") do quit elseif(Temp == "E&xchange") Temp = ToPath ToPath = FromPath FromPath = Temp jump Start endif for(i = 1; i <= ToFiles; i++) One = line(ToList, i) ToName = file.nametype(One) ToName = case("lower", ToName) for(j = 1; j <= FromFiles; j++) Temp = "Comparing " ++ i ++ " of " ++ ToFiles ++ " with " ++ j Temp = Temp ++ " of " ++ FromFiles osd.show(Temp, "INFINITE", "30", "Arial", "-1", "255 000 000") Other = line(FromList, j) FromName = file.nametype(Other) FromName = case("lower", FromName) if(ToName == FromName) do Counter++ Temp = file.getdate(Other, "c") Date = select(Temp, 8) Time = select(Temp, 9, 14) file.setdate(One, "c", Date, Time) Temp = file.getdate(Other, "m") Date = select(Temp, 8) Time = select(Temp, 9, 14) file.setdate(One, "m", Date, Time) endif endfor endfor osd.hide mpIcon = "D:\Graphics\Icons\User\CopyDate.ico" if(Counter == 0) do mpDlgText = "No equal names found" else mpDlgText = "Time && date is changed for " ++ Counter ++ " of " ++ ToFiles ++ " files" endif MiscPlugin.messagebox(1, "&OK")
Идея здесь та же, что и в скрипте CopyDate. Допустим, вы с приятелем съездили в отпуск, он наснимал фотографий и записал на сидюк. Всем ваш приятель хорош, но снимать не умеет. Одну фотку надо просветлять, в другой подтянуть цвета, третью откадрировать. В результате кропотливой работы у вас на жестком диске - красивые картинки... с временем редактирования, а на его сидюке - ужасные, но зато из атрибутов ясно, в понедельник они сделаны или в чеверг, утром или вечером.
В текущей панели Total Commander переходим на первую директорию, в противоположной открываем сидюк. Имена у файлов одинаковые, даты создания и изменения - разные. Запускаем скрипт на выполнение. Каждый отредактированный файл восстановит атрибуты со своего тезки.
С помощью плагина osd скрипт постоянно докладывает о проделанной работе. Если вам это не надо, просто удалите строки, начинающиеся с osd (их две).
На главную | Все о Total Commander | PowerPro | PowerPro & Total Commander |