The name of a script file for pre-processing of a restoration is as follows.
<Environment directory>\etc\backup\scripts\OpcRestorePre.js
<Shared disk>:\etc\opt\swstorage\etc\backup\scripts\OpcRestorePre.js
1: // AdvancedCopy Manager for Windows 2: // All Rights Reserved, Copyright FUJITSU LIMITED, 2002-2009 3: // 4: // OpcRestorePre.js: Pre-Processing Script for swstrestore 5: // 6: // [Parameters] 7: // 1st argument: device name of transaction volume 8: // 9: // [Return Values] 10: // 0: The script ended normally. 11: // 2: The number of the arguments is incorrect. 12: // 3: not used, but must not be used because older versions use these values. 13: // 4: An error other than the above occurred. 14: 15: try { 16: // create global objects 17: var WshShell = WScript.CreateObject("WScript.Shell"); // create Shell object 18:var WshEnv = WshShell.Environment("PROCESS"); // create Environment object 19:var fsObj = WScript.CreateObject("Scripting.FileSystemObject"); // create FileSystemObject object 20: 21:// create SwstRestorePreProc object 22:var proc = new SwstRestorePreProc(); 23: 24:// there is nothing to do if the pre/post-processing is not customized 25:proc.doNothingForDriveLetter(); 26: 27:SwstQuit(0); 28: } catch (e) { 29:SwstQuit(4); 30: } 31: 32: function SwstRestorePreProc() 33: { 34:// member variables 35:this.tvName = WScript.Arguments.length!=1?SwstQuit(1):WScript.Arguments.Item(0); // device name of transaction volume 36:this.postFileName = getDataPathName() + "\\" + getPutFileName(this.tvName) + ".pre"; // name of postprocessing file 37: 38:// member functions 39:this.doNothingForDriveLetter = doNothingForDriveLetter; // self-explanatory 40:this.writePostFile = writePostFile; // self-explanatory 41: } 42: 43: function doNothingForDriveLetter() 44: { 45:this.writePostFile("none"); 46: } 47: 48: function writePostFile(type) 49: { 50:var overwrite = true; // means to overwrite a file if it exists. 51:var postFileStream = fsObj.CreateTextFile(this.postFileName, overwrite); 52:postFileStream.Write(type); 53:postFileStream.Close(); 54: } 55: 56: function SwstQuit(exitStatus) 57: { 58:switch(exitStatus) { 59:case 0: 60: WScript.Quit(0); 61:case 1: 62: WScript.Echo("[Restore Preprocessing] The number of the arguments is incorrect."); 63: WScript.Quit(2); 64:default: 65: WScript.Echo("[Restore Preprocessing] The script exited abnormally."); 66: WScript.Quit(4); 67: } 68: } 69: 70: function getDataPathName() 71: { 72:return WshShell.RegRead(getSetupInfoKey() + "\\etcPathName") + "\\etc\\backup\\data\\DEFAULT"; 73: } 74: 75: function getBinPathName() 76: { 77:return WshShell.RegRead(getSetupInfoKey() + "\\PathName") + "\\bin"; 78: } 79: 80: function getSetupInfoKey() 81: { 82:var nodeName = WshEnv.Item("SWSTGNODE"); 83:if( nodeName != "" ){ 84: return "HKEY_LOCAL_MACHINE\\SOFTWARE\\Fujitsu\\AdvancedCopy Manager\\CurrentVersion\\" + nodeName; 85: } 86:return "HKEY_LOCAL_MACHINE\\SOFTWARE\\Fujitsu\\AdvancedCopy Manager\\CurrentVersion"; 87: } 88: 89: function getPutFileName(deviceName){ 90:var fileName; 91:if( isSafeDISKName(deviceName) ){ 92: var re = /(\S+)\/(\S+):(\S+)/; 93: fileName = deviceName.replace(re, "$1_$2_$3"); 94: }else{ 95: fileName = deviceName; 96: } 97:return(fileName); 98: } 99: 100: function getGXDXPX(deviceName){ 101:var gXdXpX; 102:if( isSafeDISKName(deviceName) ){ 103: var re = /(\S+)\/(\S+):(\S+)/; 104: gXdXpX = deviceName.replace(re, "$3"); 105: }else{ 106: gXdXpX = deviceName; 107: } 108:return(gXdXpX); 109: } 110: 111: function isSafeDISKName(deviceName){ 112:var key = ":g"; 113:var s = deviceName.indexOf(key); 114:if ( s < 0 ) { 115: return (false); 116: } else { 117: return (true); 118: } 119: }