注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT求助&讨论
» cmd管道中一个神奇的现象;
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
CrLf
发短消息
加为好友
CrLf
当前离线
UID
30406
帖子
6388
精华
2
积分
18837
PB
15777
技术
980
捐助
100
阅读权限
255
在线时间
5536 小时
注册时间
2010-10-9
最后登录
2024-5-10
论坛巡查
帖子
6388
积分
18837
技术
980
捐助
100
注册时间
2010-10-9
1
楼
跳转到
»
发表于 2012-4-13 20:19
|
显示全部帖子
不会吧,那不是子进程里的变量么,听zqz谈及过,回头上电脑找下帖子
链接:
在线第三方命令行工具下载
bat、vbs、js 原生混编
TOP
CrLf
发短消息
加为好友
CrLf
当前离线
UID
30406
帖子
6388
精华
2
积分
18837
PB
15777
技术
980
捐助
100
阅读权限
255
在线时间
5536 小时
注册时间
2010-10-9
最后登录
2024-5-10
论坛巡查
帖子
6388
积分
18837
技术
980
捐助
100
注册时间
2010-10-9
2
楼
发表于 2012-4-13 21:48
|
显示全部帖子
本帖最后由 CrLf 于 2012-4-13 21:59 编辑
回复
5#
lllsoslll
理论上应该不可能,zqz 的解释见:
http://bbs.bathome.net/redirect. ... 6&fromuid=30406
其后对于缓冲区异象的相关讨论见:
http://bbs.bathome.net/viewthread.php?tid=14455
而管道符与子进程的关系见(估计老兄应该知道这个的):
http://bbs.bathome.net/redirect. ... 0&fromuid=30406
归纳简述一下,管道前后存在语句块或者内部命令时,必然启动一个子进程来进行解析,所以 echo test|set /p input= 并非赋值失败,而是将值赋给子进程 cmd 中的 input 变量,而我们知道进程的变量环境只在创建时向下继承,创建之后的变量环境变动互不相干,因此当管道运行结束后,成功获取 input 变量的子进程随之退出,此时在父进程 cmd 中获取 input 变量新值的尝试是一定不会成功的。
链接:
在线第三方命令行工具下载
bat、vbs、js 原生混编
TOP
CrLf
发短消息
加为好友
CrLf
当前离线
UID
30406
帖子
6388
精华
2
积分
18837
PB
15777
技术
980
捐助
100
阅读权限
255
在线时间
5536 小时
注册时间
2010-10-9
最后登录
2024-5-10
论坛巡查
帖子
6388
积分
18837
技术
980
捐助
100
注册时间
2010-10-9
3
楼
发表于 2012-4-15 18:52
|
显示全部帖子
本帖最后由 CrLf 于 2012-4-15 18:59 编辑
咦?突然发现楼主说的是 set 而非 set/p,我又跑偏了…不过目测感觉不可能啊,回头上机实验。不过不明白的是,楼主认为这和传统方案相比优势何在呢?
链接:
在线第三方命令行工具下载
bat、vbs、js 原生混编
TOP
返回列表
JS / JScript / JavaScript
BAT原创&转载
UNIX/Linux Shell
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]