| 
 | 
| Название | 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 |