中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 04:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for命令在CMD下运行正常,但是在纯DOS下提示语法错误? 查看 707 回复 3
楼 主 for命令在CMD下运行正常,但是在纯DOS下提示语法错误? 发表于 2008-04-16 10:08 ·  中国 广东 佛山 顺德区 电信
新手上路
积分 6
发帖 2
注册 2006-11-27 21:33
19年会员
UID 71907
性别 男
状态 离线
一个TXT或者是LOG文档,里面的内容是16位的一串数字和字符,我只想要后8位,比如里面是00902800987867AB,我只想要987867AB
所以我用FOR命令:
set var=002000005854472A
set var=%var:00200000=_%
for /f "delims=_" %%i in ("%var%") do echo %%i

在windows的命令提示符下运行可以成功, 但是我进DOS后运行居然提示SYNTAX ERROR(语法错误)!!!

我的DOS是纯98DOS, 后来我又用矮人DOS工具进去,那个DOS是7.1版的,无论加载EMM或者是HIMEM都一样提示语法错误,我就晕了,为什么命令提示符下可以运行成功,但在纯DOS下不行呢?

另外有人说可以用filecut实现我的要求,但是我不知道怎么配置filecut.ini,如果有知道的大哥麻烦告诉一下用filecut怎么实现这个也行
多谢拉!!!!!!
2 发表于 2008-04-16 10:25 ·  中国 江苏 南京 电信
初级用户
积分 94
发帖 46
注册 2006-05-14 01:59
20年会员
UID 55490
性别 男
状态 离线
纯DOS里的for没有 /f 这个参数,"delims=_" 的用法就更别提了。
你的第二行命令在纯DOS里也是错误的,楼主好好弄清楚纯DOS和CMD的区别。

[ Last edited by clonecd on 2008-4-16 at 10:27 AM ]
3 发表于 2008-04-16 10:30 ·  中国 广东 佛山 顺德区 电信
新手上路
积分 6
发帖 2
注册 2006-11-27 21:33
19年会员
UID 71907
性别 男
状态 离线
Re: clonecd
这样啊。。。 多谢了

可是这样说的话,用for命令在DOS下就没法做了,那请问有没有别的办法实现我要的功能呢? 比如怎么用filecut 或者是别的什么办法?
4 发表于 2008-04-16 14:31 ·  中国 江苏 南京 电信
初级用户
积分 94
发帖 46
注册 2006-05-14 01:59
20年会员
UID 55490
性别 男
状态 离线
楼主好好看看纯DOS下的lmod、strings的用法,更高级的应用可以看看纯DOS下的sed和awk的用法,请分别用相应的关键词搜索本楼论坛即可,应该能达到你的要求,自己慢慢学吧。
论坛跳转: