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

[其他] [已解决]批处理怎样在2个cmd窗口下共享变量?

在A CMD窗口下通过set env=1,用start启动另一个B CMD窗口,怎样在B中获取到A中得知的变量env呢?

[ 本帖最后由 liion631818 于 2011-1-27 09:21 编辑 ]
1

评分人数

    • hanyeguxing: 感谢给帖子标题标注[已解决]字样PB + 2
__@__@__批了___来看看吧

通过修改注册表的方法添加一个系统环境变量
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

原帖由 Batcher 于 2011-1-26 14:30 发表
通过修改注册表的方法添加一个系统环境变量


不会啊~可否给个实例啊,注册表不太会
__@__@__批了___来看看吧

TOP

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

TOP

可不可以用clipboarddata.setdata把变量值存到剪贴板,然后再在B.BAT里读取呢?

A.BAT的内容
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p env=输入:
  3. mshta vbscript:clipboarddata.setdata("text","%env%")(close)
  4. pause
复制代码
B.BAT的内容不知道怎么写.

TOP

将此变量存储、获取于批处理外,例如文件、注册表
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 liion631818 于 2011-1-26 14:29 发表 [url=redirect.php?goto=findpost&pid=69440&ptid=10905][/url]
在A CMD窗口下通过set env=1,用start启动另一个B CMD窗口,怎样在B中获取到A中得知的变量env呢?

是指這樣嗎?

a.cmd
  1. @echo off
  2. set env=Hello
  3. start b.cmd %env%
复制代码
b.cmd
  1. @echo off
  2. echo %1
  3. pause
复制代码
带内地用语或带里语的文章,在下读写总觉有点吃力;
如误解了各位意思的讲勿见怪   ^_^

TOP

A.bat    Demo1
  1. @echo off
  2. set /p env=
  3. start b.cmd %env%
复制代码
A.bat    Demo2
  1. @echo off
  2. set /p env=
  3. call b.cmd
复制代码
B.bat     Demo1
  1. @echo off
  2. Hello i'm b.bat
  3. echo %evn%
复制代码

TOP

原帖由 Taurus 于 2011-2-8 06:37 发表

是指這樣嗎?

a.cmd@echo off
set env=Hello
start b.cmd %env%b.cmd@echo off
echo %1
pause


本意是指A CMD中和B CMD窗口中同时运行着bat,而B中想获取A中设置好的env后继续往下执行。
前面几楼有提到写注册表,写文件之类的方法,是可以解决我的问题的。
只是看看有没有更好的方法~~呵呵!!
__@__@__批了___来看看吧

TOP

今天在system32文件夹淘宝,发现一个命令:setx,不知xp下可有此命令,若有,那必然一举取代通过wmic或reg来修改环境变量的老办法了!
  1. setx st32 %comspec:~0,-8%
  2. ::设置环境变量,立即生效!并可跨窗口读取(win7下亲测)
复制代码

昨天所说的有误,因为我是先setx设置变量,后打开cmd查找,才看到st32变量,我以为可以在原窗口立刻读取刚刚设定的变量,但是今天试了下不行

[ 本帖最后由 zm900612 于 2011-3-9 16:42 编辑 ]

TOP

回复 10楼 的帖子

XP下没有啊~~
回去到win7上看看
__@__@__批了___来看看吧

TOP

2个进程,各自内存空间独立,只能通过第三方来做。
文件,注册表,内存(剪贴板)等。
一般来说,多个CMD通信,如果信息量不大,我喜欢通过at命令添加一些计划任务,这些任务的指令里包含传递的信息,通过计划时间的不同来区别通信对象。

用这个的好处是可以在不同的计算机上通信,删除甄别方便,不像文件注册表等需要知道路径,而且没有IO错误。

[ 本帖最后由 caruko 于 2011-3-9 19:25 编辑 ]

TOP

回复 10楼 的帖子

所以嘛,每次看到有人说“Win7里面批处理越来越不行了”,我总有一种想打人的冲动^_^
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表