Board logo

标题: 请教一个对目录下所有文件执行操作并移动的程序 [打印本页]

作者: meteormiao     时间: 2010-11-25 21:37    标题: 请教一个对目录下所有文件执行操作并移动的程序

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

论坛置顶帖我也看了,有一些心得,总觉的差那么一点就突破,呵呵,希望能得到大家的解答,谢谢。
作者: qinchun36     时间: 2010-11-25 21:55
你先写出对一个文件进行转换并移动到批处理,然后再改改,就能用于所有的文件了,编批处理也是一步一步来的。
作者: meteormiao     时间: 2010-11-25 22:36
对一个文件的我能写出来,不过是固定文件名的,我现在关键是目录下的DOC名字不确定,我不知道怎么写对目录下所有DOC进行操作,生产相应的SWF文件
作者: qinchun36     时间: 2010-11-25 22:53
那你运行这个批处理看看,要学好循环才能干跟多的事:
@echo off
for %%a in ("D:\a\*.doc") do (
  echo 把 DOC 文件 "%%a"
  echo 转换成 "%%~dpna.swf"
  echo ========
)
pause

作者: meteormiao     时间: 2010-11-26 09:08
4楼的朋友,我有两点不是太明白
1。这个转换必须用C:\a.exe才能实现,但批处理中没有,那怎么实现转换
2。%%~dpna.swf是什么意思呢?不是太明白
作者: meteormiao     时间: 2010-11-26 10:33
@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 ]
作者: meteormiao     时间: 2010-11-26 19:54
没有高手指点一下吗
作者: qinchun36     时间: 2010-11-26 21:07
关于 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\
)

作者: meteormiao     时间: 2010-11-27 12:19
@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了,谢谢你的帮助