中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 06:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于用for语句对多个子目录中的特定文件执行相同操作 查看 1,248 回复 7
楼 主 关于用for语句对多个子目录中的特定文件执行相同操作 发表于 2006-10-07 03:40 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
22年会员
UID 8600
性别 男
状态 离线
我想用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

哪儿错了呢?
2 发表于 2006-10-07 05:22 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
要加个括号,把 DO 后面的全包进去 DO ( ... )
3 发表于 2006-10-07 05:56 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
22年会员
UID 8600
性别 男
状态 离线
不是吧?我这样的执行后把"%SystemDrive%\Documents and Settings\下的所有目录全给移到d:\pic目录了
4 发表于 2006-10-07 07:41 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
既然都过去了,那你指的错是什么?
5 发表于 2006-10-07 08:16 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
22年会员
UID 8600
性别 男
状态 离线
我的本意是把%SystemDrive%\Documents and Settings\下的所有*.jpg 文件移到d:\pic目录

该怎么做?
6 发表于 2006-10-07 09:23 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
20年会员
UID 58987
来自 湖南.娄底
状态 离线
发现楼主的代码有误.
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
7 发表于 2006-10-07 10:08 ·  中国 江苏 扬州 电信
中级用户
积分 203
发帖 44
注册 2003-08-14 00:00
22年会员
UID 8600
性别 男
状态 离线
for命令一直不太懂,这儿真是dos学习的好地方

谢谢楼上的兄弟!!!
8 发表于 2006-10-10 02:18 ·  中国 广东 东莞 电信
中级用户
★★
积分 282
发帖 130
注册 2006-09-20 22:25
19年会员
UID 63201
来自 广东
状态 离线
学习了……
偶也不懂for~#¥……¥%……*%(
~~~~好好学习
天天向上~~~~
论坛跳转: