找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24186|回复: 8

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

[复制链接]
发表于 2008-8-13 15:57:56 | 显示全部楼层 |阅读模式
通常,我们在一个command窗口中输入 set myvar=myvalue 可以用echo %myvar%得到它的值“myvalue”。但是如果打开另一个command窗口,输入“echo %myvar%”,得不到我们的预想值。
我应该如何设置一个全局变量来在另一个command的窗口中得到这个值呢?
我是刚入门的菜鸟,完全没有头绪,希望各位大虾们帮忙,谢谢啦!
发表于 2008-8-13 16:21:46 | 显示全部楼层
做不到
CMD不可以在这个CMD下设置的变量能给另一个CMD用的
除非保存到文本再让另一个CMD到文本读取

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

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

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

而你说的,要在两个不同的CMD中都有效的变量,那是不可能的,至少我还没见过,可能是我孤陋寡闻吧
发表于 2008-8-13 22:30:20 | 显示全部楼层
  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%"
复制代码
发表于 2008-8-14 08:49:16 | 显示全部楼层
多CMD之间通信而不借助其它介质,就目前来看还是不太可能的。
借助start或call给另外一个传递参数倒是能做到。
 楼主| 发表于 2008-8-14 09:19:58 | 显示全部楼层
batcher的方法成功,太感谢了。我在标题说清楚了,可能内容没说清楚,是要借助环境变量实现的,应该是设置一个环境变量得到另一个command窗口的值,而不是全局变量。太感谢各位了。正在学习中,不懂的问题还要多多请教大家,谢谢
 楼主| 发表于 2008-8-14 10:15:37 | 显示全部楼层
wmic ENVIRONMENT create name="myvar",username="<system>",VariableValue="%myvar%"

删除这个环境变量应该用 wmic ENVIRONMENT delete 吧,可是我没有找到后面可以带的参数呢!如果我想删除name="myvar“这个环境变量怎么做呢
发表于 2008-8-14 23:20:56 | 显示全部楼层

回复 6楼 的帖子

  1. wmic ENVIRONMENT where "name='myvar'" delete
复制代码
 楼主| 发表于 2008-8-18 09:19:31 | 显示全部楼层
非常感谢!
发表于 2008-8-18 09:21:14 | 显示全部楼层
wmic果真很强大。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:44 , Processed in 0.019237 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表