标题: [系统相关] 批处理如何设置一个环境变量得到其他cmd窗口的变量值? [打印本页]
作者: sunnyjjsummer 时间: 2008-8-13 15:57 标题: 批处理如何设置一个环境变量得到其他cmd窗口的变量值?
通常,我们在一个command窗口中输入 set myvar=myvalue 可以用echo %myvar%得到它的值“myvalue”。但是如果打开另一个command窗口,输入“echo %myvar%”,得不到我们的预想值。
我应该如何设置一个全局变量来在另一个command的窗口中得到这个值呢?
我是刚入门的菜鸟,完全没有头绪,希望各位大虾们帮忙,谢谢啦!
作者: lovelymorning 时间: 2008-8-13 16:21
做不到
CMD不可以在这个CMD下设置的变量能给另一个CMD用的
除非保存到文本再让另一个CMD到文本读取
如果你是想让一个变量可以在多个批文件中使用,那可以用 call 调用,这样就是在同一个CMD窗口,这些变量都是有效的
比喻 a.bat 里面设置变量 set a=abc
然后用 call b.bat
而 b.bat 里面写上 echo %a%
这时就会显示 a 的值了
而你说的,要在两个不同的CMD中都有效的变量,那是不可能的,至少我还没见过,可能是我孤陋寡闻吧
作者: Batcher 时间: 2008-8-13 22:30
- @echo off
- echo what's your value?
- set /p myvar=
- echo %myvar%
- wmic ENVIRONMENT create name="myvar",username="<system>",VariableValue="%myvar%"
复制代码
作者: pusofalse 时间: 2008-8-14 08:49
多CMD之间通信而不借助其它介质,就目前来看还是不太可能的。
借助start或call给另外一个传递参数倒是能做到。
作者: sunnyjjsummer 时间: 2008-8-14 09:19
batcher的方法成功,太感谢了。我在标题说清楚了,可能内容没说清楚,是要借助环境变量实现的,应该是设置一个环境变量得到另一个command窗口的值,而不是全局变量。太感谢各位了。正在学习中,不懂的问题还要多多请教大家,谢谢
作者: sunnyjjsummer 时间: 2008-8-14 10:15
wmic ENVIRONMENT create name="myvar",username="<system>",VariableValue="%myvar%"
删除这个环境变量应该用 wmic ENVIRONMENT delete 吧,可是我没有找到后面可以带的参数呢!如果我想删除name="myvar“这个环境变量怎么做呢
作者: Batcher 时间: 2008-8-14 23:20 标题: 回复 6楼 的帖子
- wmic ENVIRONMENT where "name='myvar'" delete
复制代码
作者: sunnyjjsummer 时间: 2008-8-18 09:19
非常感谢!
作者: pusofalse 时间: 2008-8-18 09:21
wmic果真很强大。。。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |