中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 18:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么把组合命令的结果,赋值给变量? 查看 925 回复 5
楼 主 怎么把组合命令的结果,赋值给变量? 发表于 2007-03-21 04:31 ·  中国 广东 东莞 电信
中级用户
★★
积分 387
发帖 104
注册 2004-11-19 00:00
21年会员
UID 33813
性别 男
状态 离线
怎么才不通过文件中转实现呢?
例如:

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

把上述结果赋值给一个变量。
2 发表于 2007-03-21 04:52 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
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 ]
3 发表于 2007-03-21 04:57 ·  中国 广东 东莞 电信
中级用户
★★
积分 387
发帖 104
注册 2004-11-19 00:00
21年会员
UID 33813
性别 男
状态 离线
谢谢了,加一个要求:

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

对上面这个结果进行判断,如果FIND成功,则把结果赋值变量。如果FIND不成功,则不赋值。
4 发表于 2007-03-21 05:05 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
for /f "delims=" %%i in ('dir/a/s/b test.exe^|find /i "test.exe" 2>nul') do set str=%%i

找不到不会赋值给str
用2>nul屏蔽错误输出显示
5 发表于 2007-03-21 08:50 ·  中国 广东 东莞 电信
中级用户
★★
积分 387
发帖 104
注册 2004-11-19 00:00
21年会员
UID 33813
性别 男
状态 离线
不错,谢谢哈,

那个 2>nul 是不是要改成 2^>nul ?
6 发表于 2007-03-21 22:01 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
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
论坛跳转: