-
-
Save XP1/2947495 to your computer and use it in GitHub Desktop.
| <?xml version="1.0" encoding="utf-8"?> | |
| <package> | |
| <job id="backupOpera"> | |
| <?job error="false" debug="false"?> | |
| <script> | |
| //<![CDATA[ | |
| /* | |
| * Copyright 2012 XP1 | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| /*jslint browser: true, vars: true, white: true, maxerr: 50, indent: 4 */ | |
| (function (script, fileSystem) | |
| { | |
| "use strict"; | |
| function pad(number) | |
| { | |
| return ((number >= 0 && number <= 9 ? "0" : "") + number); | |
| } | |
| function formatDate(date) | |
| { | |
| return (date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate())); | |
| } | |
| function formatTime(date) | |
| { | |
| return (pad(date.getHours()) + "-" + pad(date.getMinutes()) + "-" + pad(date.getSeconds())); | |
| } | |
| function formatDateTime(date) | |
| { | |
| return (formatDate(date) + " " + formatTime(date)); | |
| } | |
| function sameFile(first, second) | |
| { | |
| return (first.dateLastModified - second.dateLastModified === 0); | |
| } | |
| function getPath(path, appendage) | |
| { | |
| var forwardSlashIndex = path.lastIndexOf("/"); | |
| var backwardSlashIndex = path.lastIndexOf("\\"); | |
| var greatestIndex = (forwardSlashIndex > backwardSlashIndex ? forwardSlashIndex : backwardSlashIndex); | |
| var dotIndex = path.indexOf(".", (greatestIndex !== -1 ? greatestIndex + 1 : 0)); | |
| return (dotIndex !== -1 ? (path.substring(0, dotIndex) + appendage + path.substring(dotIndex)) : (path + appendage)); | |
| } | |
| function backupFile(currentPath) | |
| { | |
| var current = fileSystem.getFile(currentPath); | |
| var backupPath = getPath(currentPath, " backup"); | |
| if (fileSystem.fileExists(backupPath)) | |
| { | |
| var backup = fileSystem.getFile(backupPath); | |
| // Only move the backup file if it is different than the current file. | |
| if (!sameFile(current, backup)) | |
| { | |
| var backupDatePath = getPath(currentPath, " " + formatDateTime(new Date(backup.dateLastModified))); | |
| if (!fileSystem.fileExists(backupDatePath)) | |
| { | |
| backup.move(backupDatePath); | |
| } | |
| } | |
| } | |
| if (!fileSystem.fileExists(backupPath)) | |
| { | |
| current.copy(backupPath); | |
| } | |
| } | |
| function initialize() | |
| { | |
| var paths = [ | |
| "sessions/autosave.win", | |
| "bookmarks.adr", | |
| "wand.dat", | |
| "notes.adr", | |
| "speeddial.ini", | |
| "search.ini", | |
| "urlfilter.ini", | |
| "browser.js" | |
| ]; | |
| var i = null; | |
| var length = paths.length; | |
| for (i = 0; i < length; i += 1) | |
| { | |
| backupFile(paths[i]); | |
| } | |
| } | |
| initialize(); | |
| script.quit(); | |
| }(this.WScript, new this.ActiveXObject("Scripting.FileSystemObject"))); | |
| //]]> | |
| </script> | |
| </job> | |
| </package> |
| <?xml version="1.0" encoding="utf-16"?> | |
| <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> | |
| <RegistrationInfo> | |
| <Date>2012-01-01T00:00:01</Date> | |
| <Author>Administrator</Author> | |
| </RegistrationInfo> | |
| <Triggers> | |
| <BootTrigger> | |
| <Repetition> | |
| <Interval>P3D</Interval> | |
| <StopAtDurationEnd>false</StopAtDurationEnd> | |
| </Repetition> | |
| <ExecutionTimeLimit>PT30S</ExecutionTimeLimit> | |
| <Enabled>true</Enabled> | |
| </BootTrigger> | |
| </Triggers> | |
| <Principals> | |
| <Principal id="Author"> | |
| <GroupId>Users</GroupId> | |
| <RunLevel>LeastPrivilege</RunLevel> | |
| </Principal> | |
| </Principals> | |
| <Settings> | |
| <IdleSettings> | |
| <Duration>PT10M</Duration> | |
| <WaitTimeout>PT1H</WaitTimeout> | |
| <StopOnIdleEnd>true</StopOnIdleEnd> | |
| <RestartOnIdle>false</RestartOnIdle> | |
| </IdleSettings> | |
| <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy> | |
| <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> | |
| <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> | |
| <AllowHardTerminate>true</AllowHardTerminate> | |
| <StartWhenAvailable>false</StartWhenAvailable> | |
| <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> | |
| <AllowStartOnDemand>true</AllowStartOnDemand> | |
| <Enabled>true</Enabled> | |
| <Hidden>false</Hidden> | |
| <RunOnlyIfIdle>false</RunOnlyIfIdle> | |
| <WakeToRun>false</WakeToRun> | |
| <ExecutionTimeLimit>PT30S</ExecutionTimeLimit> | |
| <Priority>7</Priority> | |
| </Settings> | |
| <Actions Context="Author"> | |
| <Exec> | |
| <Command>"\Backup Opera 1.00.wsf"</Command> | |
| <WorkingDirectory>%APPDATA%\Opera\Opera\</WorkingDirectory> | |
| </Exec> | |
| </Actions> | |
| </Task> |
-
Create a folder for storing the script.
-
Right click on "raw" > Save Linked Content As... > Save the WSF file to your folder.
-
Next, save the XML file as "Backup Opera 1.00.xml".
When you save the XML file, make sure that you save the file encoding as UTF-16 (labeled "Unicode" in Notepad).
On
<Command>"\Backup Opera 1.00.wsf"</Command>, make sure that you modify this line by adding the location of the script.On
<WorkingDirectory>%APPDATA%\Opera\Opera\</WorkingDirectory>, you can change this line if your profile location is different. -
Start > All Programs > Accessories > Right click on "Command Prompt" > Run as administrator.
-
Change to the directory where the XML file is located.
-
Import the XML as a task:
schtasks /create /tn "Backup Opera 1.00" /xml "Backup Opera 1.00.xml"If you want to delete the task, type:
schtasks /delete /tn "Backup Opera 1.00" /fThis task is set up to run every 3 days.
-
After you have imported the task, you can configure the interval and schedule by using the task scheduler. To open the task scheduler, in the command prompt or in a Start > Run dialog, type:
taskschd.msc
I posted this script in this thread:
Is there an extension that will AUTOMATICALLY save my CURRENT session on close/at intervals?:
http://my.opera.com/community/forums/topic.dml?id=1413942