分享
 
 
 

用 JavaScript 迁移目录

王朝html/css/js·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

这两天用虚拟机安装系统,准备用虚拟机把开发环境和数据库分离,想法如下:

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有