Board logo

标题: 关于用for语句对多个子目录中的特定文件执行相同操作 [打印本页]

作者: wjgyz740526     时间: 2006-10-7 03:40    标题: 关于用for语句对多个子目录中的特定文件执行相同操作

我想用for语句对多个子目录中的特定文件执行相同操作(复制或者移动,路径有空格且为长文件名)

我是这样写的:
@echo off

for /f "delims=" %%i in ('dir *.jpg /s/b/a:d "%SystemDrive%\Documents and Settings\"') do echo d | move  "%%i" d:\pic

pause

哪儿错了呢?
作者: NaturalJ0     时间: 2006-10-7 05:22
要加个括号,把 DO 后面的全包进去 DO ( ... )
作者: wjgyz740526     时间: 2006-10-7 05:56
不是吧?我这样的执行后把"%SystemDrive%\Documents and Settings\下的所有目录全给移到d:\pic目录了
作者: NaturalJ0     时间: 2006-10-7 07:41
既然都过去了,那你指的错是什么?
作者: wjgyz740526     时间: 2006-10-7 08:16
我的本意是把%SystemDrive%\Documents and Settings\下的所有*.jpg 文件移到d:\pic目录

该怎么做?
作者: pengfei     时间: 2006-10-7 09:23
发现楼主的代码有误.
1.  dir *.jpg这个*.jpg应该放到路径后面.
2.  dir *.jpg /s/b/a:d 楼主要搜索文件却使用目录搜索.
3.  echo d | move这个move前面的回显示和管道命令不知作何用.
@echo off
for /f "delims=" %%i in ('dir /s /a-d /b "%SystemDrive%\Documents and Settings\*.jpg"') do (
    move  "%%i" d:\pic
)
pause

作者: wjgyz740526     时间: 2006-10-7 10:08
for命令一直不太懂,这儿真是dos学习的好地方

谢谢楼上的兄弟!!!
作者: jieok3375     时间: 2006-10-10 02:18
学习了……
偶也不懂for~#¥……¥%……*%(