中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 01:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结] 自动生成bat的问题 查看 2,081 回复 16
楼 主 [已结] 自动生成bat的问题 发表于 2007-06-15 13:59 ·  中国 上海 电信数据中心
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
我们知道dir /b/ad > dirs.bat 是输出当前目录下的文件夹名到文件dirs.bat
假设我这里有两个文件夹20070613和20070713
那么dirs.bat的内容就是
20070613
20070713
但是如果我想要dirs.bat的内容是
SomeCmd "20070613" -d
SomeCmd "20070713" -d
怎么办?

[ Last edited by sinbao on 2007-6-18 at 05:31 PM ]
2 发表于 2007-06-15 14:15 ·  中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
for /f "delims=" %%i in ('dir /b /ad') do echo SomeCmd "%%i" -d>>dirs.bat


试试这个?没测试
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
sinbao +1 2007-06-16 15:49
3 发表于 2007-06-16 15:48 ·  中国 上海 闵行区 电信
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
恩,不错...
4 发表于 2007-06-16 15:54 ·  中国 上海 闵行区 电信
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
哦,还有一个问题,
如果我要过滤文件夹的名字怎么办?比如我只要文件夹20070613和20070713,而不要1245,abcd,fee等文件夹呢?
5 发表于 2007-06-16 19:15 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
仅仅是要20070613和20070713两个文件夹吗?
6 发表于 2007-06-18 09:05 ·  中国 上海 电信数据中心
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
不,要日期格式的文件夹
7 发表于 2007-06-18 09:08 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线

for /f "delims=" %%i in ('dir /b /ad 200*') do echo SomeCmd "%%i" -d>>dirs.bat
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
sinbao +1 2007-06-18 17:32
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
8 发表于 2007-06-18 13:10 ·  中国 上海 电信数据中心
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
楼上的虽然也行,有个问题是如果我想要文件夹的名字是8位数字呢?
9 发表于 2007-06-18 13:37 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
for /f "delims=" %%i in ('dir /b /ad ^|findstr /r "^$"') do echo SomeCmd "%%i" -d>>dirs.bat


这样呢?似乎P中的正则只能这样写了。没测试,:-)

[ Last edited by wudixin96 on 2007-6-18 at 01:39 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
sinbao +1 2007-06-18 17:32
10 发表于 2007-06-18 14:02 ·  中国 上海 电信数据中心
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
dos支持正则吗?
那\d{8}这种语法支持吗?
11 发表于 2007-06-18 14:34 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
findstr中的正则就那么点了。

要是能支持/d[8}。早用了。

要不用VBS或JS吧。正则支持的不错。看样子楼主的正则不错哦。
12 发表于 2007-06-18 15:15 ·  中国 上海 电信数据中心
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
用过perl,正则知道一点...
13 发表于 2007-06-18 15:26 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
既然一定要用正则,干脆使用sed或者gawk之类的软件好了,反正有的是。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
14 发表于 2007-06-18 15:49 ·  中国 上海 电信数据中心
初级用户
★★
积分 184
发帖 73
注册 2007-05-24 18:06
19年会员
UID 89185
性别 男
状态 离线
那不行,一定要通用...别人机器上没有装你不可能给他装个吧
15 发表于 2007-06-18 16:17 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
有时候,鱼和熊掌是不能兼得的。

微软的批处理从来就不是一个好的编程工具,你不能干它本来就干不了的事情,它跟Unix的shell脚本实在是无法相提并论的。

你的情况,只能走一步看一步了,9楼的脚本应该暂时能够满足要求,但肯定也不完美,因为如果有一个目录是88888888,也是符合规则的。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
论坛跳转: