这两天用虚拟机安装系统,准备用虚拟机把开发环境和数据库分离,想法如下:
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
分享到:
相关推荐
javascript中的数据库迁移工具 基于 描述 Migrator 类提供了一种在混合移动应用程序中管理数据库迁移过程的方法。 它是如何工作的 当您调用 execute() 函数时,迁移过程开始。 如果是第一次运行,它将为迁移创建一...
1. 此脚本用javascript编写,运行在node.js的环境下 2. 此脚本主要是用来将Android源码迁移至GitLab服务器 3. 此脚本主要分类三块,GitLabApi、Utils工具类和start()方法
用于VSTS继承进程的进程迁移器node.js实用程序_TypeScript_JavaScript_下载.zip
Easy Mock 线上项目迁移工具
一个强大的跨平台 UI 工具包,用于使用 HTML、CSS 和 JavaScript 构建原生质量的 iOS、Android 和渐进式 Web 应用程序。 Ionic 基于Web Components,可实现显着的性能、可用性和功能改进,同时支持Angular、...
网络工作者演示 通过将长时间运行的 JS 迁移到 Web Worker 来优化 Javascript 运行时 设置 cd到仓库 运行python -m SimpleHTTPSever 打开localhost:8000
我曾经使用一些脚本将我的网站的博客部分从WordPress迁移到Hashnode WordPress-Hashnode迁移器这是一组脚本和说明,用于促进将博客从WordPress迁移到Hashnode。 用法使用以下指南作为该过程的演练:将我的博客从...
如何使用pip3安装html2text进度#步骤1:在quiver2hexo.py#10指定您的quiver笔记本路径#步骤2:在quiver2hexo.py#12指定您的Hexo源路径#步骤3:运行quiv用Quiver编写,部署到Hexo博客。 如何使用pip3安装...
当前,我们有两个主要的迁移配置: 用于主要JavaScript→TypeScript迁移用于忽略脚本可以将这些配置移出默认脚本,并且人们可以根据需要添加具有不同插件集的自定义配置。 您可以在找到有关如何安装和运行ts-...
然后: npm install cassanova-migrate cd cassanova-migrate npm install概述基本用法运行当前目录中可用的所有迁移。 cassanova-migrate -k 使用增量迁移编号创建新迁移(用于跟踪迁移)。 cassanova-migrate ...
使用javaScript实现了一个计算导论作业里面的算法,图灵机识别abcd序列问题,使用echart做了简单的可视化,欢迎大家参考
JavaScript RequireJS转换为TypeScript 示例项目显示如何将RequireJS Javascript项目增量迁移到TypeScript
使用 tensorflow 实现迁移学习,对应该文章,其中包含了完整的源代码。可供学习。
一个CLI工具用于帮助Vue 1.x迁移至2.0
本项目采用前后端分离开发模式,前端使用的技术有Javascript、jQuery、Art-template,后端使用技术有Flask、mysql、redis、celery等。文档全面,可快速部署。 可用于本科毕业设计,难度和工作量均较为适中。资料内...
基于Deeplearn.JS在浏览器里实现快速画风迁移
2.图像风格迁移技术的Web应用 2.1基于Flask的Web应用 基于训练好的VGG16模型参数将实现的代码整合到Flask框架中,创建了一个基于卷积神经网络(CNN)图像风格迁移的Web系统。该代码被集成到项目的webapp中。选择...
JSW 使用大量空白的Javascript语法的... JSW是Coffeescript用户使用ES6迁移到真实Javascript的一种好方法。 带有翻译过的Javascript的示例JSW # JSW -> func1 arg1, arg2 var hash1 = key1 : val1 key2 : val2
该gem的主要用例是将Sprockets支持的javascript代码库逐步迁移到ES6模块。 这可以通过它们为保留您现有的全局变量引用的模块来工作(因此名称:Babel + UMD = BumbleD)。 一旦在ES6模块中编写了整个javascript模块...