中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教一个对目录下所有文件执行操作并移动的程序
作者:
标题: 请教一个对目录下所有文件执行操作并移动的程序 上一主题 | 下一主题
meteormiao
新手上路





积分 7
发帖 7
注册 2010-11-25
状态 离线
『楼 主』:  请教一个对目录下所有文件执行操作并移动的程序

我是windows xp系统,现在要实现的是这么一个功能:
有应用程序 C:\a.exe (可以把DOC文件转换成SWF文件)
有两个目录 D:\a和D:\b
我想用a.exe把D盘根目录下所有的DOC文件转换成同文件名的SWF文件并存放到D盘a目录下,然后将所有的DOC文件移动到D盘b文件夹下。

论坛置顶帖我也看了,有一些心得,总觉的差那么一点就突破,呵呵,希望能得到大家的解答,谢谢。

2010-11-25 21:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 2 楼』:  

你先写出对一个文件进行转换并移动到批处理,然后再改改,就能用于所有的文件了,编批处理也是一步一步来的。

2010-11-25 21:55
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
meteormiao
新手上路





积分 7
发帖 7
注册 2010-11-25
状态 离线
『第 3 楼』:  

对一个文件的我能写出来,不过是固定文件名的,我现在关键是目录下的DOC名字不确定,我不知道怎么写对目录下所有DOC进行操作,生产相应的SWF文件

2010-11-25 22:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 4 楼』:  

那你运行这个批处理看看,要学好循环才能干跟多的事:
@echo off
for %%a in ("D:\a\*.doc") do (
  echo 把 DOC 文件 "%%a"
  echo 转换成 "%%~dpna.swf"
  echo ========
)
pause


2010-11-25 22:53
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
meteormiao
新手上路





积分 7
发帖 7
注册 2010-11-25
状态 离线
『第 5 楼』:  

4楼的朋友,我有两点不是太明白
1。这个转换必须用C:\a.exe才能实现,但批处理中没有,那怎么实现转换
2。%%~dpna.swf是什么意思呢?不是太明白

2010-11-26 09:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
meteormiao
新手上路





积分 7
发帖 7
注册 2010-11-25
状态 离线
『第 6 楼』:  

@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 ]

2010-11-26 10:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
meteormiao
新手上路





积分 7
发帖 7
注册 2010-11-25
状态 离线
『第 7 楼』:  

没有高手指点一下吗

2010-11-26 19:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 8 楼』:  

关于 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\
)


2010-11-26 21:07
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
meteormiao
新手上路





积分 7
发帖 7
注册 2010-11-25
状态 离线
『第 9 楼』:  

@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了,谢谢你的帮助

2010-11-27 12:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: