中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么把组合命令的结果,赋值给变量?
作者:
标题: 怎么把组合命令的结果,赋值给变量? 上一主题 | 下一主题
zts59
中级用户




积分 387
发帖 104
注册 2004-11-19
状态 离线
『楼 主』:  怎么把组合命令的结果,赋值给变量?

怎么才不通过文件中转实现呢?
例如:

dir /a/s/b test.exe|find /i "test.exe"

把上述结果赋值给一个变量。

2007-3-21 04:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 2 楼』:  

for /f "delims=" %%i in ('dir /a/s/b test.exe^|find /i "test.exe"') do set str=%%i

少了in

[ Last edited by zh159 on 2007-3-20 at 04:02 PM ]

2007-3-21 04:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zts59
中级用户




积分 387
发帖 104
注册 2004-11-19
状态 离线
『第 3 楼』:  

谢谢了,加一个要求:

dir /a/s/b test.exe|find /i "test.exe"

对上面这个结果进行判断,如果FIND成功,则把结果赋值变量。如果FIND不成功,则不赋值。

2007-3-21 04:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 4 楼』:  

for /f "delims=" %%i in ('dir/a/s/b test.exe^|find /i "test.exe" 2>nul') do set str=%%i

找不到不会赋值给str
用2>nul屏蔽错误输出显示

2007-3-21 05:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zts59
中级用户




积分 387
发帖 104
注册 2004-11-19
状态 离线
『第 5 楼』:  

不错,谢谢哈,

那个 2>nul 是不是要改成 2^>nul   ?

2007-3-21 08:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by zts59 at 2007-3-20 19:50:
不错,谢谢哈,

那个 2>nul 是不是要改成 2^>nul   ?

忘了,在()里要用,dir的也要加上
@echo off
for /f "delims=" %%i in ('dir/a/s/b test.exe 2^>nul^|find /i "test.exe" 2^>nul') do set str=%%i


2007-3-21 22:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: