中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-25 04:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教一个对目录下所有文件执行操作并移动的程序 查看 1,143 回复 8
楼 主 请教一个对目录下所有文件执行操作并移动的程序 发表于 2010-11-25 21:37 ·  中国 北京 电信
新手上路
积分 7
发帖 7
注册 2010-11-25 10:05
15年会员
UID 178229
性别 男
状态 离线
我是windows xp系统,现在要实现的是这么一个功能:
有应用程序 C:\a.exe (可以把DOC文件转换成SWF文件)
有两个目录 D:\a和D:\b
我想用a.exe把D盘根目录下所有的DOC文件转换成同文件名的SWF文件并存放到D盘a目录下,然后将所有的DOC文件移动到D盘b文件夹下。

论坛置顶帖我也看了,有一些心得,总觉的差那么一点就突破,呵呵,希望能得到大家的解答,谢谢。
2 发表于 2010-11-25 21:55 ·  中国 北京 联通
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
你先写出对一个文件进行转换并移动到批处理,然后再改改,就能用于所有的文件了,编批处理也是一步一步来的。
3 发表于 2010-11-25 22:36 ·  中国 北京 电信
新手上路
积分 7
发帖 7
注册 2010-11-25 10:05
15年会员
UID 178229
性别 男
状态 离线
对一个文件的我能写出来,不过是固定文件名的,我现在关键是目录下的DOC名字不确定,我不知道怎么写对目录下所有DOC进行操作,生产相应的SWF文件
4 发表于 2010-11-25 22:53 ·  中国 北京 联通
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
那你运行这个批处理看看,要学好循环才能干跟多的事:

@echo off
for %%a in ("D:\a\*.doc") do (
echo 把 DOC 文件 "%%a"
echo 转换成 "%%~dpna.swf"
echo ========
)
pause
5 发表于 2010-11-26 09:08 ·  中国 北京 电信
新手上路
积分 7
发帖 7
注册 2010-11-25 10:05
15年会员
UID 178229
性别 男
状态 离线
4楼的朋友,我有两点不是太明白
1。这个转换必须用C:\a.exe才能实现,但批处理中没有,那怎么实现转换
2。%%~dpna.swf是什么意思呢?不是太明白
6 发表于 2010-11-26 10:33 ·  中国 北京 电信
新手上路
积分 7
发帖 7
注册 2010-11-25 10:05
15年会员
UID 178229
性别 男
状态 离线
@echo off
for %%a in ("D:\*.doc") do
{
start C:\a.exe
move D:\*.swf D:\a
move D:\*.doc D:\b
}

还是不明白。。。。不明白问题出在哪了

a.exe执行的语句是a.exe 某名.doc -o 某名.swf,我不知道应该怎么来实现

[ Last edited by meteormiao on 2010-11-26 at 10:51 ]
7 发表于 2010-11-26 19:54 ·  中国 北京 电信
新手上路
积分 7
发帖 7
注册 2010-11-25 10:05
15年会员
UID 178229
性别 男
状态 离线
没有高手指点一下吗
8 发表于 2010-11-26 21:07 ·  中国 北京 联通
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
关于 d p n 是什么意思,你用 for /? 看看帮助就知道了。
批处理里不是用大括号,而是用小括号。
a.exe要参数,你加上不就行了。试试这个行不行吧

@echo off
for %%a in ("D:\*.doc") do (
C:\a.exe "%%a" -o "D:\b\%%~na.swf"
move "%%a" D:\a\
)
9 发表于 2010-11-27 12:19 ·  中国 北京 电信
新手上路
积分 7
发帖 7
注册 2010-11-25 10:05
15年会员
UID 178229
性别 男
状态 离线
@echo off
for %%a in ("D:\*.doc") do (
C:\a.exe "%%a" -o "D:\b\%%~na.swf"
move "%%a" D:\a\
)

这段代码完全可行。明天两点
1。for循环的 ( 必须接着do写,否则不能执行
2。%%~na,将a扩展为文件名

太感谢qinchun36了,谢谢你的帮助
论坛跳转: