用 JavaScript 迁移目录

    技术2022-05-11  85

     

    这两天用虚拟机安装系统,准备用虚拟机把开发环境和数据库分离,想法如下:      1.开发环境为Host      2.Guest 为数据库服务器,每一个服务器都是一个独立的虚拟机       数据库包括,Oracle 9i、SQL Server 2005、MySQL

       但是装系统,还要设置环境变量,以减少系统盘的占用和增加性能,这就需要迁移系统盘的一些目录了,比如IE临时目录,临时文件夹,Applocation Data;此外,我们还需要把重要的文件夹移动到其他分区,以避免在系统盘发生事故或者想要恢复的时候,重要数据(MyDocument,收藏夹,程序配置等)不受影响。   手动修改环境变量和注册表值太麻烦了,因为我每次装系统都要修改那么一次,这次实在受够了,心里一发狠。好,我写个脚本把你搞定!   BAT是不能设置系统环境变量的,此外可用的就有 VBScript 和 JScript 了;VBScript 的好处是有对话框,JScript没有(alert等只能在网页中使用),而JScript 的代码条理清晰一些,并且功能强大,可以使用正则表达式等功能。   于是乎,写了下面的脚本,各位大虾请看代码:

     

      1//********************************************************************  2// Copymiddle 2006 Zealic,All middle keeped.  3//********************************************************************  4//** 环境变量名  5//** 设置环境变量名,这些值影响环境变量的名字,建议不要修改  6  7var VN_PATH        = "PATH";  8var VN_PROFILE        = "PROFILE";  9var VN_PROFILE_USER    = "PROFILE_USER"; 10var VN_VOLATILE_PROFILE    = "VOLATILE_PROFILE"; 11var VN_TEMP        = "TEMP"; 12 13 14//******************************************************************** 15//** 设置 16 17var m_Prefix        = "GUEST_"; 18var m_UserName        = "Zealic"; 19var m_Profile        = "D://Profile"; 20var m_VoltProfile    = "F://VolatileProfile"; 21var m_UserPath        = "C://WINDOWS//Microsoft.NET//Framework//v2.0.50727;"  22                + "D://Java//JRE//Currently//bin"; 23 24//调用函数以设置 25SetEnvironment(m_Prefix,m_UserName,m_Profile,m_VoltProfile,m_UserPath); 26 27 28//******************************************************************** 29//** 函数定义 30 31// 设置环境变量 32//     prefix         : 环境变量名的前缀 33//     userName    : 用户名 34//     profile        : 重要文件目录 35//     voltProfile    : 非重要文件目录 36//     userPath    : 用户 Path,设置该值以进行快捷运行程序 37function SetEnvironment(prefix,userName,profile,voltProfile,userPath) 38{ 39    //开始设置 40    var currentName; 41    //=========================== 42    // 设置系统重要目录 43    currentName = prefix + VN_PROFILE; 44     45    SetSystemValue(currentName, profile); 46 47    // 设置设置用户重要目录 48    currentName = prefix + VN_PROFILE_USER; 49    SetSystemValue(currentName, "%" + prefix + VN_PROFILE + "%//" + userName); 50 51    // 设置设置系统非重要目录 52    currentName = prefix + VN_VOLATILE_PROFILE; 53    SetSystemValue(currentName, voltProfile); 54 55    // 设置设置用户非重要目录 56    currentName = prefix + "VOLATILE_PROFILE_USER"; 57    SetSystemValue(currentName, "%" + prefix + VN_VOLATILE_PROFILE + "%" + "//" + userName); 58 59    // 设置临时目录 60    currentName = prefix + "TEMP"; 61    SetSystemValue(currentName, "%" + prefix + VN_VOLATILE_PROFILE + "%" + "//Temporary"); 62 63    //设置TEMP变量 64    var temp = "%" + prefix + VN_TEMP + "%"; 65    SetUserValue("TMP", temp); 66    SetUserValue("TEMP", temp); 67    SetSystemValue("TMP", temp); 68    SetSystemValue("TEMP", temp); 69 70    // 设置 Path 和 自定义 Path 连接 71    var currentName = prefix + VN_PATH; 72    SetSystemValue(currentName, userPath); 73    // 检测是否已经存在Path,如果不存在则设置 74    var regValue = new RegExp("%" + prefix + VN_PATH + "%","i"); 75    if(!regValue.test(GetSystemValue("Path"))) 76    { 77        SetSystemValue("Path",GetSystemValue("Path") + ";%" + prefix + VN_PATH + "%"); 78    } 79} 80 81// 调试用函数 82function Debug(msg) 83{ 84    wsh = new ActiveXObject("WScript.Shell"); 85    wsh.Popup(msg); 86} 87 88// 获取用户环境变量 89function GetUserValue(name,value) 90{ 91    wsh = new ActiveXObject("WScript.Shell"); 92    return wsh.Environment("user").Item(name); 93} 94// 设置用户环境变量 95function SetUserValue(name,value) 96{ 97    wsh = new ActiveXObject("WScript.Shell"); 98    wsh.Environment("user").Item(name) = value; 99}100// 删除用户环境变量101function RemoveUserValue(name)102{103    wsh = new ActiveXObject("WScript.Shell");104    wsh.Environment("user").Remove(name) = value;105}106107// 获取系统环境变量108function GetSystemValue(name,value)109{110    wsh = new ActiveXObject("WScript.Shell");111    return wsh.Environment("system").Item(name);112}113// 设置系统环境变量114function SetSystemValue(name,value)115{116    wsh = new ActiveXObject("WScript.Shell");117    wsh.Environment("system").Item(name) = value;118}119// 删除系统环境变量120function RemoveSystemValue(name)121{122    wsh = new ActiveXObject("WScript.Shell");123    wsh.Environment("system").Remove(name) = value;124}125126127128

       其中 Profile 为有价值的数据和文件 ,VolatileProfile 用过而无价值的数据和文件。这样,我们就可以清楚的知道,Profile 要保留,VolatileProfile 则可以经常清理。

       之后我还需要把 Desktop,My Document,Favorites文件夹迁移到 Profile 目录中,然后就开始安装数据库。    不过嘛,今天太晚了,明天再说~~~   明天用用 JScript 操作注册表以迁移系统的一些目录到 Profile 和 VolatileProfile 目录。http://www.cnblogs.com/zealic/archive/2006/11/07/552433.html

     

    最新回复(0)