[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理如何设置一个环境变量得到其他cmd窗口的变量值?

通常,我们在一个command窗口中输入 set myvar=myvalue 可以用echo %myvar%得到它的值“myvalue”。但是如果打开另一个command窗口,输入“echo %myvar%”,得不到我们的预想值。
我应该如何设置一个全局变量来在另一个command的窗口中得到这个值呢?
我是刚入门的菜鸟,完全没有头绪,希望各位大虾们帮忙,谢谢啦!

做不到
CMD不可以在这个CMD下设置的变量能给另一个CMD用的
除非保存到文本再让另一个CMD到文本读取

如果你是想让一个变量可以在多个批文件中使用,那可以用 call 调用,这样就是在同一个CMD窗口,这些变量都是有效的

比喻 a.bat 里面设置变量   set a=abc
然后用 call b.bat

而 b.bat 里面写上 echo %a%
这时就会显示 a 的值了

而你说的,要在两个不同的CMD中都有效的变量,那是不可能的,至少我还没见过,可能是我孤陋寡闻吧

TOP

  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%"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

多CMD之间通信而不借助其它介质,就目前来看还是不太可能的。
借助start或call给另外一个传递参数倒是能做到。
心绪平和,眼藏静谧。

TOP

batcher的方法成功,太感谢了。我在标题说清楚了,可能内容没说清楚,是要借助环境变量实现的,应该是设置一个环境变量得到另一个command窗口的值,而不是全局变量。太感谢各位了。正在学习中,不懂的问题还要多多请教大家,谢谢

TOP

wmic ENVIRONMENT create name="myvar",username="<system>",VariableValue="%myvar%"

删除这个环境变量应该用 wmic ENVIRONMENT delete 吧,可是我没有找到后面可以带的参数呢!如果我想删除name="myvar“这个环境变量怎么做呢

TOP

回复 6楼 的帖子

  1. wmic ENVIRONMENT where "name='myvar'" delete
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

非常感谢!

TOP

wmic果真很强大。。。
心绪平和,眼藏静谧。

TOP

返回列表