中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 17:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】关于ECHO的疑惑 查看 703 回复 4
楼 主 【求助】关于ECHO的疑惑 发表于 2008-03-04 16:54 ·  中国 广东 深圳 联通
初级用户
积分 42
发帖 19
注册 2008-02-18 15:56
18年会员
UID 110899
性别 男
状态 离线
@echo off
set a=1
echo %a%
pause
以上语句....我执行批处理时正常显示1

然后...将上述批处理改成如下:
@echo off
set aDate = %date:~0,-4%
for /f "tokens=1" %%a in ('type "d:\date.txt"^|find "%aDate%"') do set LastDate = "%%a"
echo %LastDate%
pause
提示ECHO关闭

然后再改回为
@echo off
set a=1
echo %a%
pause
仍然提示ECHO处于关闭状态

.一头雾水中....问题出在什么地方呢

[ Last edited by simplenoughappy on 2008-3-4 at 05:00 PM ]
2 发表于 2008-03-04 17:19 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
没事不好加这么多空格
3 发表于 2008-03-04 17:20 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
set aDate = %date:~0,-4%
这句带空格,把空格删掉试试看
set aDate=%date:~0,-4%

还有"tokens=1"可以删除,默认就是取第一列的值
4 发表于 2008-03-04 17:29 ·  中国 广东 深圳 联通
初级用户
积分 42
发帖 19
注册 2008-02-18 15:56
18年会员
UID 110899
性别 男
状态 离线
刚才去改了下..估计就是空格的事...
谢谢楼上几位的提醒.....刚开始接触批处理很多东西不懂
感觉在空格上面真是很严格的样子...
以前习惯在=号2边加空格了...
5 发表于 2008-03-04 18:10 ·  中国 上海 黄浦区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
因为空格影响了变量的值,所以最后find并未能找到,所以 for语言的输出为空
你让echo去显示空变量,就出现那种情况了
论坛跳转: