无忧启动论坛

标题: 请教一个批处理的问题 [打印本页]

作者: daiddcc    时间: 2007-9-17 22:41
标题: 请教一个批处理的问题
我在A目录下有大量的BMP文件,想有选择性的将以名字第一位为数字的BMP文件拷贝到B目录,即将D:\a\1*.bmp这样的文件copy到D:\b下,写了个批处理,修改几次总提示找不到1*.bmp,请高手指教。

假使当前目录为A

  1. for /f %%i in (1 2 3 4 5 6 7 8 9) do dir d:\a\%%i*.bmp /b > list.txt
  2. for /f %%a in (list.txt) do xcopy %%a d:\b /y
复制代码

第一步列文件目录就失败,提示:找不到文件 1

试着将第一句改为:

  1. for /f %%i in (1*.bmp 2*.bmp 3*.bmp 4*.bmp 5*.bmp 6*.bmp 7*.bmp 8*.bmp 9*.bmp) do dir d:\a\%%i /b > list.txt
复制代码

同样提示:找不到文件1*.bmp

但A目录下明显存在1*.bmp,手工用dir 1*.bmp完全能看到。

如何改写才能成功?
作者: lp1129    时间: 2007-9-18 08:59
你对for语句的理解还不够深入,这里不需加 /f 参数, 以下是我的用法,不需批处理,在CMD中一句命令即完成:

for %i in (1 2 3 4 5 6 7 8 9) do if exist d:\a\%i*.bmp xcopy d:\a\%i*.bmp d:\b /y
作者: daiddcc    时间: 2007-9-18 12:42
谢谢lp1129的帮助。参照你的命令已成功操作。
因为简化成一句,并不需要写list.txt文件,/f参数已可省略。
看来需要理解学习的东西还很多。




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3