Board logo

标题: [系统相关] 批处理如何设置一个环境变量得到其他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

  1. @echo off
  2. echo what's your value?
  3. set /p myvar=
  4. echo %myvar%
  5. 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楼 的帖子

  1. wmic ENVIRONMENT where "name='myvar'" delete
复制代码

作者: sunnyjjsummer    时间: 2008-8-18 09:19

非常感谢!
作者: pusofalse    时间: 2008-8-18 09:21

wmic果真很强大。。。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2