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

在bat1中call另外一个bat2, 如何把bat2中的变量值返回给bat1

[复制链接]
发表于 2014-1-6 10:47:50 | 显示全部楼层
回复 15# feihuang


    哪里不理解可以直接问
 楼主| 发表于 2014-1-7 13:37:29 | 显示全部楼层
call时传入参数b2, 为什么在第二段代码中给参数b2(%1)赋值之后, 在第一段代码中能知道b2的值被改变了? 这个是什么样的原理?

是因为bat中自上而下的运行机制, 是b2改变的值存到内存中了么?

因为在高级语言里面,有返回值可以显示的返回, 而这里面没有返回

谢谢!
发表于 2014-1-7 14:45:02 | 显示全部楼层
回复 17# feihuang


    因为bat1和bat2在同一个cmd.exe进程里面
 楼主| 发表于 2014-1-7 14:52:16 | 显示全部楼层
回复 18# DAIC

例如开头的时候,我的示例中, 应该也是在一个cmd中, 那在bat1中call bat2.bat之后,直接调用b2是可以的了? (PS:我试过b2确实是改变了。)
bat1
@echo off
call bat2.bat
echo %b2%  --------请教高人如何在bat1中调用到bat2中的b2

bat2
@echo off
set b2=abcd bacsd
echo %b2% -------------b2如何返回给bat1中
pause
发表于 2014-1-7 16:03:46 | 显示全部楼层
回复 19# feihuang


    是的。
 楼主| 发表于 2014-1-7 16:17:42 | 显示全部楼层
回复 20# DAIC


    明白了,多谢!
发表于 2014-1-7 18:33:01 | 显示全部楼层
回复 17# feihuang


    高级语言里面不是有全局变量吗?bat是类似的道理
 楼主| 发表于 2014-1-8 10:13:57 | 显示全部楼层
回复 22# wscript


    恩, 是的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 22:48 , Processed in 0.027643 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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