用 JavaScript 迁移目录


Posted in Javascript onDecember 18, 2006

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

//********************************************************************  
// Copymiddle 2006 Zealic,All middle keeped.  
//********************************************************************  
//** 环境变量名  
//** 设置环境变量名,这些值影响环境变量的名字,建议不要修改  
var VN_PATH        = "PATH";  
var VN_PROFILE        = "PROFILE";  
var VN_PROFILE_USER    = "PROFILE_USER";  
var VN_VOLATILE_PROFILE    = "VOLATILE_PROFILE";  
var VN_TEMP        = "TEMP";  
//********************************************************************  
//** 设置  
var m_Prefix        = "GUEST_";  
var m_UserName        = "Zealic";  
var m_Profile        = "D:\\Profile";  
var m_VoltProfile    = "F:\\VolatileProfile";  
var m_UserPath        = "C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727;"   
                + "D:\\Java\\JRE\\Currently\\bin";  
//调用函数以设置  
SetEnvironment(m_Prefix,m_UserName,m_Profile,m_VoltProfile,m_UserPath);  

//********************************************************************  
//** 函数定义  
// 设置环境变量  
//     prefix         : 环境变量名的前缀  
//     userName    : 用户名  
//     profile        : 重要文件目录  
//     voltProfile    : 非重要文件目录  
//     userPath    : 用户 Path,设置该值以进行快捷运行程序  
function SetEnvironment(prefix,userName,profile,voltProfile,userPath)  
{  
    //开始设置  
    var currentName;  
    //===========================  
    // 设置系统重要目录  
    currentName = prefix + VN_PROFILE;  
    SetSystemValue(currentName, profile);  
    // 设置设置用户重要目录  
    currentName = prefix + VN_PROFILE_USER;  
    SetSystemValue(currentName, "%" + prefix + VN_PROFILE + "%\\" + userName);  
    // 设置设置系统非重要目录  
    currentName = prefix + VN_VOLATILE_PROFILE;  
    SetSystemValue(currentName, voltProfile);  
    // 设置设置用户非重要目录  
    currentName = prefix + "VOLATILE_PROFILE_USER";  
    SetSystemValue(currentName, "%" + prefix + VN_VOLATILE_PROFILE + "%" + "\\" + userName);  
    // 设置临时目录  
    currentName = prefix + "TEMP";  
    SetSystemValue(currentName, "%" + prefix + VN_VOLATILE_PROFILE + "%" + "\\Temporary");  
    //设置TEMP变量  
    var temp = "%" + prefix + VN_TEMP + "%";  
    SetUserValue("TMP", temp);  
    SetUserValue("TEMP", temp);  
    SetSystemValue("TMP", temp);  
    SetSystemValue("TEMP", temp);  
    // 设置 Path 和 自定义 Path 连接  
    var currentName = prefix + VN_PATH;  
    SetSystemValue(currentName, userPath);  
    // 检测是否已经存在Path,如果不存在则设置  
    var regValue = new RegExp("%" + prefix + VN_PATH + "%","i");  
    if(!regValue.test(GetSystemValue("Path")))  
    {  
        SetSystemValue("Path",GetSystemValue("Path") + ";%" + prefix + VN_PATH + "%");  
    }  
}  
// 调试用函数  
function Debug(msg)  
{  
    wsh = new ActiveXObject("WScript.Shell");  
    wsh.Popup(msg);  
}  
// 获取用户环境变量  
function GetUserValue(name,value)  
{  
    wsh = new ActiveXObject("WScript.Shell");  
    return wsh.Environment("user").Item(name);  
}  
// 设置用户环境变量  
function SetUserValue(name,value)  
{  
    wsh = new ActiveXObject("WScript.Shell");  
    wsh.Environment("user").Item(name) = value;  
}  
// 删除用户环境变量  
function RemoveUserValue(name)  
{  
    wsh = new ActiveXObject("WScript.Shell");  
    wsh.Environment("user").Remove(name) = value;  
}  
// 获取系统环境变量  
function GetSystemValue(name,value)  
{  
    wsh = new ActiveXObject("WScript.Shell");  
    return wsh.Environment("system").Item(name);  
}  
// 设置系统环境变量  
function SetSystemValue(name,value)  
{  
    wsh = new ActiveXObject("WScript.Shell");  
    wsh.Environment("system").Item(name) = value;  
}  
// 删除系统环境变量  
function RemoveSystemValue(name)  
{  
    wsh = new ActiveXObject("WScript.Shell");  
    wsh.Environment("system").Remove(name) = value;  
} 

   其中 Profile 为有价值的数据和文件 ,VolatileProfile 用过而无价值的数据和文件。这样,我们就可以清楚的知道,Profile 要保留,VolatileProfile 则可以经常清理。
   之后我还需要把 Desktop,My Document,Favorites文件夹迁移到 Profile 目录中,然后就开始安装数据库。 
   不过嘛,今天太晚了,明天再说~~~
   明天用用 JScript 操作注册表以迁移系统的一些目录到 Profile 和 VolatileProfile 目录。
http://www.cnblogs.com/zealic/archive/2006/11/07/552433.html
Javascript 相关文章推荐
jQuery 研究心得 取得属性的值
Nov 30 Javascript
JavaScript作用域链示例分享
May 27 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
Apr 14 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
Jul 06 Javascript
简单实现js选项卡切换效果
Feb 09 Javascript
JS实现加载时锁定HTML页面元素的方法
Jun 24 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
Dec 28 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
May 18 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
Nov 01 Javascript
使用vue引入maptalks地图及聚合效果的实现
Aug 10 Javascript
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 #Javascript
XP折叠菜单&仿QQ2006菜单
Dec 16 #Javascript
prototype 1.5相关知识及他人笔记
Dec 16 #Javascript
飞鱼(shqlsl) javascript作品集
Dec 16 #Javascript
XHTML-Strict 内允许出现的标签
Dec 11 #Javascript
JS的IE和Firefox兼容性集锦
Dec 11 #Javascript
不错的新闻标题颜色效果
Dec 10 #Javascript
You might like
PHP+javascript模拟Matrix画面
2006/10/09 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
PHP内置加密函数详解
2016/11/20 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
优化javascript的执行速度
2010/01/23 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
Python过滤列表用法实例分析
2016/04/29 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
安全检查验收制度
2014/01/12 职场文书
毕业生自我鉴定实例
2014/01/21 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
土地租赁意向书
2014/07/30 职场文书
运动会宣传稿50字
2015/07/23 职场文书
小学毕业感言200字
2015/07/30 职场文书
交通安全教育心得体会
2016/01/15 职场文书