지난 이틀간 가상머신을 이용해 시스템을 설치했는데, 가상머신을 이용해 개발환경과 데이터베이스를 분리해볼까 합니다.
1. 개발환경은 다음과 같습니다. 호스트
2. 게스트는 데이터베이스 서버이고 각 서버는 독립적입니다. 가상 머신
데이터베이스에는 Oracle 9i, SQL Server 2005 및 MySQL이 포함됩니다
단, 시스템을 설치할 때 필요한 사항도 있습니다. 시스템 디스크 사용량을 줄이고 성능을 높이기 위해 환경 변수를 설정하려면 IE 임시 디렉터리, 임시 폴더, Applocation Data 등의 일부 디렉터리를 마이그레이션해야 합니다. 시스템 디스크에 사고가 발생하거나 구성을 복원하려는 경우 등)이 영향을 받지 않도록 중요한 데이터(내 문서, 즐겨찾기, 프로그램)를 피하십시오.
환경변수와 레지스트리 값을 수동으로 수정하는 것은 시스템을 설치할 때마다 수정해야 하기 때문에 너무 귀찮고, 이번에는 너무 불편해서 마음이 아프네요. 좋아, 내가 대본을 써서 끝내줄게!
BAT는 시스템 환경 변수를 설정할 수 없습니다. 또한 VBScript 및 JScript를 사용할 수 있습니다. VBScript의 장점은 대화 상자가 있지만 JScript는 없다는 것입니다(경고 등은 웹 페이지에서만 사용할 수 있음). 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") ";%" 접두사 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( 이름,값)
{
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이 자주 정리될 수 있다는 것을 명확하게 알 수 있습니다.
그 후에도 데스크톱, 내 문서, 즐겨찾기 폴더를 프로필 디렉터리로 마이그레이션한 다음 데이터베이스 설치를 시작해야 합니다.
그런데 오늘은 늦었으니 내일 얘기하자~~~
내일은 JScript를 이용하여 레지스트리를 운영하여 시스템의 일부 디렉터리를 Profile 및 VolatileProfile 디렉터리로 마이그레이션할 예정입니다.
http://www.cnblogs.com/zealic/archive/2006/11/07/552433.html