日期:2014-05-17  浏览次数:21263 次

bat 设置环境变量path,所有进程都可使用
bat 脚本如下:
@echo off
wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="C:\Python24;%path%"
echo %path%
pause

现象:
1.我右击打开查询环境变量,两个操作系统都有设置成功
2.我利用命令行set 查看,只有操作系统二成功添加
3.执行命令操作系统二成功
4.操作系统一我右击打开查看环境变量后,因为他实际是存在的,所以我在点击保存后,命令行可以操作了(但这不是想要的)

上述问题是为什么?

要求:
1.不能重启操作系统
2.设置环境变量后,其它cmd进程也可使用



操作系统一
系统名称 Microsoft(R) Windows(R) Server 2003, Enterprise Edition 
系统版本 5.2.3790 Service Pack 2 Build 3790 
OS 制造商 Microsoft Corporation 
系统制造商 LENOVO 
产品 ID 69813-640-9722366-45690 
系统型号 ThinkCentre M6100T 
系统类型 X86-based PC 
系统区域设置 zh-cn;中文(中国) 
处理器 安装了 2 个处理器。
x86 Family 6 Model 23 Stepping 10 GenuineIntel ~3192 Mhz 


操作系统二
Host Name: DANIE-8CA0EE62C
OS Name: Microsoft Windows XP Professional
OS Version: 5.1.2600 Service Pack 3 Build 2600
OS Manufacturer: Microsoft Corporation
OS Configuration: Member Workstation
OS Build Type: Multiprocessor Free
Registered Owner: danie
Registered Organization: danie
Original Install Date: 2011-9-8, 9:10:49
System Up Time: 0 Days, 3 Hours, 36 Minutes, 0 Seconds
System Manufacturer: LENOVO
System Model: ThinkCentre M6100T
System type: X86-based PC
Processor(s): 1 Processor(s) Installed.
[01]: x86 Family 6 Model 23 Stepping 10 GenuineIntel ~3192 Mhz


------解决方案--------------------
WMIC设置环境变量是不需要重启,但是对当前CMD窗口不会生效,因为CMD是在启动时读取环境变量,所以就算你在这个窗口设置了环境变量,也是不生效的,你说的第一个系统可能是你先前调试过命令,环境变量记录了,造成生效。

写个批处理举个例子

BatchFile code

wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="D:\eXeScope;%path%"
set path
set path="D:\eXeScope;%path%"
set path
pause
eXeScope.exe
pause