`
zendj
  • 浏览: 121288 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

用 JavaScript 迁移目录

阅读更多

这两天用虚拟机安装系统,准备用虚拟机把开发环境和数据库分离,想法如下:
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}
106
107// 获取系统环境变量
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}
125
126
127
128

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

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

分享到:
评论

相关推荐

    系统目录迁移工具.zip

    在使用前,确保计算机环境符合工具的系统需求,并了解其使用方法,包括如何指定源目录、目标目录以及迁移选项等。 `rules.json` 文件则可能包含了迁移规则或配置信息。在目录迁移过程中,这些规则可以用来定义如何...

    EasyMock线上项目迁移工具

    在使用过程中,开发者需要按照工具提供的说明文档,逐步执行迁移步骤,确保所有必要的数据和配置都被正确地转移到本地。 在实际操作中,项目迁移通常涉及以下几个关键步骤: 1. 数据备份:首先,需要从线上环境中...

    带有ORM迁移和向量的JavaScript API框架.zip

    "说明.txt"文件可能包含了关于如何使用这些组件的详细指导,包括安装步骤、配置选项、使用示例等。 总的来说,这个JavaScript API框架结合了ORM和向量技术,旨在提供一个既能高效管理数据库,又能创建丰富交互体验...

    用于VSTS继承进程的进程迁移器node.js实用程序_TypeScript_JavaScript_下载.zip

    描述中提到的内容与标题一致,主要强调这是一个可下载的.zip文件,包含该Node.js实用程序的相关源代码,使用了TypeScript和JavaScript两种编程语言。TypeScript是JavaScript的一个超集,提供了静态类型检查和更多...

    基于Javascript的deepTechnology深度学习图片风格迁移设计源码

    本项目是基于Javascript的deepTechnology深度学习图片风格迁移设计源码,包含67个文件,其中PNG图片13张,JavaScript文件12个,Python源文件6个,

    基于DeeplearnJS在浏览器里实现快速画风迁移

    1. **源代码**:包含实现画风迁移算法的JavaScript代码,可能使用了Deeplearn.js API来操作张量和模型。 2. **预训练模型**:模型文件可能以JSON或其他格式存储,用于提取和转换图像的风格和内容。 3. **示例图像**...

    migratorjs:javascript中的数据库迁移工具

    javascript中的数据库迁移工具 基于 描述 Migrator 类提供了一种在混合移动应用程序中管理数据库迁移过程的方法。 它是如何工作的 当您调用 execute() 函数时,迁移过程开始。 如果是第一次运行,它将为迁移创建一...

    基于Mysql数据库Moodle课程迁移的解决方案.pdf

    当使用“链接到文件”方式添加资源时,图片的链接存储在`reference`字段,仅包含文件名,是一种相对路径,迁移后仍然能正常工作,只要文件在新服务器上的相对位置保持不变。然而,如果通过“编写网页”并在HTML中...

    cognos javascript

    我们深入解析IBM Cognos 8.4版本中对于使用脚本的要求和规范,以及从早期版本如IBM Cognos ReportNet 1.x和Cognos 8 BI的8.1、8.2升级到8.3和8.4版本时JavaScript应用的迁移指南。此文档由IBM于2008年10月27日修订至...

    andorid源码自动迁移脚本

    1. 此脚本用javascript编写,运行在node.js的环境下 2. 此脚本主要是用来将Android源码迁移至GitLab服务器 3. 此脚本主要分类三块,GitLabApi、Utils工具类和start()方法

    Node.js-Lift是一个功能强大的数据库结构迁移工具

    Node.js 是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者可以在服务器端使用JavaScript进行编程,极大地扩展了JavaScript的应用范围。在这个环境中,Lift工具是针对数据库结构管理的一个重要组件,尤其...

    Babel一个JavaScript编译器

    1. **项目迁移**:如果你的项目需要使用新特性,但又担心兼容性问题,Babel 可以帮你平滑过渡。 2. **库/框架开发**:许多库和框架,如 React 和 Vue,都依赖 Babel 来处理 JSX 和其他新语法。 3. **模块打包**:...

    JavaScript Tools Guide CS3

    《JavaScript Tools Guide CS3》是一份针对Adobe Creative Suite 3 (CS3) 的专业文档,详细介绍了如何使用JavaScript进行扩展编程。Adobe CS3是一款集合了多个设计与开发工具的套件,包括Illustrator、Photoshop、...

    项目已经迁移到@wolf-table_table.zip

    标题中的“项目已经迁移到@wolf-table_table.zip”表明这是一个关于软件项目的迁移操作,其中涉及的核心组件可能是"Wolf Table",这可能是一个用于数据管理或处理的表格类库,尤其在JavaScript环境中。"Table"通常指...

    babelcodemod重写JavaScript使用babel插件

    Babel是JavaScript社区广泛使用的转译器,它允许开发者使用最新或实验性的JavaScript特性,然后将其转换为兼容当前环境的JavaScript版本。Codemods是一种自动化代码转换工具,特别适用于大规模代码库的迁移或统一...

    flash和JavaScript通信

    例如,当Flash中的某个事件触发时,我们可以使用`ExternalInterface.call()`方法将数据传递给JavaScript。JavaScript函数需要预先定义好,以便接收Flash的调用。这种方法需要确保Flash Player插件在用户的浏览器中已...

    Chrome 缓存迁移向导

    迁移过程会涉及到复制这个目录下的所有文件和子目录,然后更改Chrome的配置,使浏览器指向新的缓存位置。 `★记注我们QQ地带★.reg`文件可能是一个注册表导入文件,用于在Windows注册表中添加或修改键值,以帮助...

    JavaScript脚本处理逻辑规划

    - **方法**:通过JavaScript编写脚本来自动化数据迁移过程中的检查步骤,确保数据的一致性和准确性。 ##### 2. IPO询价功能-财汇数据 - **目标**:实现IPO询价功能,提高询价效率和准确性。 - **方法**:使用...

    JavaScript权威指南第四版.pdf

    作为JavaScript语言的权威指南,这本书详细介绍了JavaScript语言的核心内容,以及如何在遵守标准的Web浏览器中使用JavaScript,对于学习如何构建动态网页和编写复杂JavaScript程序的开发者来说,这本书是不可或缺的...

Global site tag (gtag.js) - Google Analytics