中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 14:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 论环境变量[systemdrive][homedrive]之间的区别 查看 1,687 回复 6
楼 主 论环境变量[systemdrive][homedrive]之间的区别 发表于 2007-10-05 22:24 ·  中国 广东 广州 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
首先在这里还是抄现饭:

%systemdrive%:系统安装的磁盘分区

%homedrive%:当前用户系统所在分区

当我们在看到这两个变量的时候,大多数情况下,这两个变量的值都是一样的

他们的值通常都是 c:

于是,就有人不明白了,既然这两个的值是一样的,为什么要有两个变量呢?

那么,我们就应该从这两个变量的名称来解释一下了。

systemdrive,从名字上来看,就是安装windows时,windows 所在的分区的盘符..
homedrive,就是当前登陆的用户所存放的配置文件所在的目录:

通常我们的用户配置文件如下,假设用户名为user,windows 安装在c盘:
c:\Documents and Settings\User

呵呵,但如果我们把用户的配置文件改一个地方,放到d盘里去.那么我们的用户配置文件就成了: d:\Documents and Settings\User

我们的homedrive 的值在这个时候就变成了d:

好了,我的论叙就到这里了。欢迎大家指正我的错误:
知,不觉多。不知,乃求知
2 发表于 2007-10-05 22:42 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
前几天不是刚刚有人发帖讨论过这个问题么?
3 发表于 2007-10-05 23:59 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
这样一说,就明白了。谢了。
Windows 一键还原
http://www.yjhy.com
4 发表于 2007-11-12 17:42 ·  中国 广东 广州 越秀区 电信
初级用户
积分 176
发帖 24
注册 2003-02-21 00:00
23年会员
UID 965
性别 男
状态 离线
除了这两个关于系统分区的变量外还有没有变量是指明系统的启动分区呢?
例如 ntdect.com boot.ini等文件所在的分区, 虽然说一般这个区对应盘符是C盘,但想写个比较通用处理情况.
5 发表于 2010-03-13 02:01 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
Originally posted by flyinspace at 2007-10-5 10:24 PM:
首先在这里还是抄现饭:

%systemdrive%:系统安装的磁盘分区

%homedrive%:当前用户系统所在分区

当我们在看到这两个变量的时候,大多数情况下,这两个 ...


老帖了,翻来再看才知道在我这里不是这样子的。。。

我的set

->cd
D:\Documents_and_Settings\桌面

->set
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=D:\Documents_and_Settings\Application Data
CLIENTNAME=Console
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=20100310-2204
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Administrator
LOGONSERVER=\\20100310-2204
mycmd=D:\program files\mycmd
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wb
n32;D:\program files\mycmd
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 13, Ge
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f0d
ProgramFiles=d:\Program Files
PROMPT=-$g
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=D:\DOCUME~1\LOCALS~1\Temp
TMP=D:\DOCUME~1\LOCALS~1\Temp
USERDOMAIN=20100310-2204
USERNAME=plp
USERPROFILE=D:\Documents_and_Settings
windir=C:\WINDOWS


[ Last edited by plp626 on 2010-3-13 at 02:03 ]
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
6 发表于 2010-03-14 00:13 ·  中国 陕西 汉中 电信
初级用户
★★
积分 128
发帖 122
注册 2009-09-21 06:24
16年会员
UID 152378
性别 男
状态 离线
那么 %systemroot% 和 %windir% 这两个都是指C:\windows,是不是在某些情况下也有区别?
7 发表于 2010-03-14 14:49 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
%SYSTEMDRIVE% 系统 返回包含 Windows XP 根目录(即系统根目录)的驱动器。
%SYSTEMROOT% 系统 返回 Windows XP 根目录的位置。
%WINDIR% 系统 返回操作系统目录的位置。
单纯从系统来说,%SYSTEMROOT%仅可用于2000以后的系统,而%WINDIR%则可以兼容到95。
%HOME...%一类的变量,主要用于域内的返回,其他变量仅用于本地返回。
论坛跳转: