CopyDate

Название CopyDate
Имя файла (*.txt) CopyDate.txt
Описание Присваивает дату и время создания и изменения одного файла (источник) другому файлу (приемник)
Автор Вахмурка
Параметры "%P%N", "%T%M"
Параметр 1: "имя файла-приемника",
Параметр 2: "имя файла-источника"
(можно поменять местами в процессе выполнения скрипта)
Вызываемые плагины file, miscplugin
Иконка
Версия 1.0
Дата обновления 16.09.2005

local Create, Modify, Date, Time, Temp, FormDate, FormTime, Mess, Result, i
local mpDlgCaption, mpIcon, mpDlgText

local Source = arg(2)
local Target = arg(1)

for(i = 1; i <= 2; i = i + 1)
	if(file.isfolder(arg(i)) == 1) do
		Mess = "Parameter 1 (source): " ++ arg(1) ++ "\nParameter 2 (target): "
		Mess = Mess ++ arg(2) ++ "\nParameter " ++ i
		Mess = Mess ++ " must be a file rather than a folder!"
		mpDlgCaption = "Error"
		mpIcon = "ERROR"
		mpDlgText = Mess
		Result = MiscPlugin.MessageBox(1, "OK")
		quit
	endif
endfor

@start

Create = file.getdate(Source, "c")
Modify = file.getdate(Source, "m")

Date = select(Create, 8)
Time = select(Create, 7, 14)
Temp = select(Create, 9, 14)

FormDate = formatdate("longdate", Date)
FormTime = formattime("HH:mm:ss", Temp)

Mess = "Source file " ++ Source ++ ":\n\n" ++ "Creation Date && Time:\n" ++ FormDate ++ ", " ++ FormTime

Date = select(Modify, 8)
Time = select(Modify, 7, 14)
Temp = select(Modify, 9, 14)

FormDate = formatdate("longdate", Date)
FormTime = formattime("HH:mm:ss", Temp)

Mess = Mess ++ "\n\nModification Date && Time:\n" ++ FormDate ++ ", " ++ FormTime

Create = file.getdate(Target, "c")
Modify = file.getdate(Target, "m")

Date = select(Create, 8)
Time = select(Create, 7, 14)
Temp = select(Create, 9, 14)

FormDate = formatdate("longdate", Date)
FormTime = formattime("HH:mm:ss", Temp)

Mess = Mess ++ "\n\n\nTarget file " ++ Target ++ ":\n\n" ++ "Creation Date && Time:\n" ++ FormDate ++ ", " ++ FormTime

Date = select(Modify, 8)
Time = select(Modify, 7, 14)
Temp = select(Modify, 9, 14)

FormDate = formatdate("longdate", Date)
FormTime = formattime("HH:mm:ss", Temp)

Mess = Mess ++ "\n\nModification Date && Time:\n" ++ FormDate ++ ", " ++ FormTime ++ "\n\nProceed with copying date from Source to Target?\n(Choose 'Exchange' to exchange Source with Target)"

mpDlgCaption = "Copy Date && Time"
mpIcon = "D:\Graphics\Icons\User\CopyDate.ico"
mpDlgText = Mess
Result = MiscPlugin.MessageBox(1, "&Go!", "E&xchange", "&Cancel")

if(Result == "&Go!") do
	Create = file.getdate(Source, "c")
	Date = select(Create, 8)
	Time = select(Create, 9, 14)
	file.setdate(Target, "c", Date, Time)
	Create = file.getdate(Source, "m")
	Date = select(Create, 8)
	Time = select(Create, 9, 14)
	file.setdate(Target, "m", Date, Time)
elseif(Result == "E&xchange") do
	Mess = Source
	Source = Target
	Target = Mess
	jump start
endif

Комментарии:

Пусть есть цифровая фотография, которую надо отредактировать (в Фотожопе, например). Но при сохранении файла редактор изменяет время создания и/или (в зависимости от редактора) изменения файла. А одно из многочисленных достоинств цифровых фотографий состоит как раз в том, что в них зашито время, которое на них запечатлено. Поэтому хорошо бы после редактирования восстановить исходные атрибуты с файла, который, естественно, должен быть сохранен где-то в виде резервной копии. Можно, конечно, сделать это врукопашную, в том числе командой cm_SetAttrib, но это дьявольски утомительно.

Имеется скрипт BatchCopyDate, который выполняет пакетное копирование даты и времени.


На главную Все о Total Commander PowerPro PowerPro & Total Commander