Gör backup med ett högerklick

Tänk dig att man med ett högerklick kan skapa en säkerhetskopia av en fil direkt i utforskaren, så att en kopia av filen sparas i en mapp med dagens datum. Dessutom sparas den mappstruktur som behövs så att man med en enkel operation kan kopiera tillbaka filen till rätt plats.

Det enda man behöver installera är Perl. Går enklast att ladda ner från activestate.com

Skapa sedan filen backup.pl med följande innehåll.

#!/usr/bin/perl -w
use File::Copy;

# settings
$backup_root = 'G:Backup';
$resolution = 86400;

# make date
$tstamp = int(time/$resolution) * $resolution;
($thissec,$thismin,$thishour,$mday,$mon,$thisyear,$t,$t,$t) = localtime($tstamp);
$thisyear += 1900;
$datename = "$thisyear-$mon-$mday";

# make path
$file = $ARGV[0];
@path = split /[\/:]+/, $file;
unshift @path, $datename;
chdir $backup_root;
$last_file = pop @path;

# file system
foreach $name (@path) {
	unless(-e $name) {
		mkdir $name or die "Dir creation failed $!";
	}
	chdir $name;
}
if(-d $file) {
	copy($file, $last_file) or die "Can't copy dir '$file': $!";
}
else {
	copy("$file", $last_file) or die "Can't copy file '$file': $!";
}

Parametern $backup_root kan modifieras efter önskemål.

Dessvärre ser inte Windows XP perl-filer som äkta körbara filer (exe, bat, com m fl), vilket behövs för att kunna starta filerna från högerklicksmenyer. För att ordna det skapar man en bat-fil som med innehållet backup.pl "%*" och lägger den i samma mapp som backup.pl.

Slutligen behöver man ändra själva högerklicksmenyn mha regedit.

  1. Gå till HKEY_CLASSES_ROOT/*.
  2. Skapa nyckeln (ser ut som en mapp) ”shell” om den inte redan finns.
  3. Skapa en undernyckel och döp den till ”Backup”. I standardfältet skriver du ”Säkerhetskopiera”
  4. Skapa en undernyckel till Backup och döp den till ”command”. I standardfältet skriver du c:pathtostuffbackup.bat %1 %2

Om du gjort rätt ska det funka omedelbart. Kolla för säkerhets skull att det funkar. Om det strular lägger man till kommandot pause i bat-filen för att se eventuella felmeddelanden.

Publicerat av Lukas Mattsson

Yogi and developer