中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 13:39
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 论环境变量[systemdrive][homedrive]之间的区别
可打印版本  1,685 / 6
第1楼 flyinspace 发表于 2007-10-05 22:24
银牌会员 发帖 517 积分 1,206
论环境变量[systemdrive][homedrive]之间的区别
首先在这里还是抄现饭:

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

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

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

他们的值通常都是 c:

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

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

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

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

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

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

好了,我的论叙就到这里了。欢迎大家指正我的错误:
第2楼 HAT 发表于 2007-10-05 22:42
版主 发帖 5,017 积分 9,023
前几天不是刚刚有人发帖讨论过这个问题么?
第3楼 lianjiang2004 发表于 2007-10-05 23:59
金牌会员 发帖 1,884 积分 3,946
这样一说,就明白了。谢了。
第4楼 forumz 发表于 2007-11-12 17:42
初级用户 发帖 24 积分 176
除了这两个关于系统分区的变量外还有没有变量是指明系统的启动分区呢?
例如 ntdect.com boot.ini等文件所在的分区, 虽然说一般这个区对应盘符是C盘,但想写个比较通用处理情况.
第5楼 plp626 发表于 2010-03-13 02:01
银牌会员 发帖 1,020 积分 2,278
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 ]
第6楼 jarry0932 发表于 2010-03-14 00:13
初级用户 发帖 122 积分 128
那么 %systemroot% 和 %windir% 这两个都是指C:\windows,是不是在某些情况下也有区别?
第7楼 Hanyeguxing 发表于 2010-03-14 14:49
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
%SYSTEMDRIVE% 系统 返回包含 Windows XP 根目录(即系统根目录)的驱动器。
%SYSTEMROOT% 系统 返回 Windows XP 根目录的位置。
%WINDIR% 系统 返回操作系统目录的位置。
单纯从系统来说,%SYSTEMROOT%仅可用于2000以后的系统,而%WINDIR%则可以兼容到95。
%HOME...%一类的变量,主要用于域内的返回,其他变量仅用于本地返回。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023