找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 69491|回复: 20

[文件操作] [已解决]有多个文件夹 每个里面都有一些图片 要求批量剪切到一个文件夹

[复制链接]
发表于 2011-12-20 22:10:35 | 显示全部楼层 |阅读模式
本帖最后由 001011 于 2011-12-21 00:25 编辑

有多个文件夹  每个里面都有一些图片 要求批量剪切到一个文件夹  对这些图片集中处理  然后再还原到原来的文件夹里面

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2011-12-20 22:19:33 | 显示全部楼层
举例说明一下  我现在有1、2、3三个文件夹  每个里面都有10001.tif、10002.tif、10003.tif、10004.tif、10005.tif五张图片。全部剪切到A文件夹  图片名可以是1 10001.tif、1 10002.tif、1 10003.tif、1 10004.tif、1 10005.tif、2 10001.tif、2 10002.tif、2 10003.tif、2 10004.tif、2 10005.tif...........。然后我在A文件夹做图片处理。处理完了  再根据图片名空格前面的数字还原到原来的文件夹   图片名  固定是五位的1000**格式
发表于 2011-12-20 22:47:43 | 显示全部楼层
移动.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "C:\test"
  4. for /l %%a in (1,1,3) do (
  5.     for %%b in ("%%a\*.tif") do (
  6.         set "newname=%%b"
  7.         set "newname=!newname:\=_!"
  8.         move "%%b" "A\!newname!"
  9.     )
  10. )
复制代码

评分

参与人数 1PB +3 技术 +1 收起 理由
CrLf + 3 + 1 乐于助人,辛苦了

查看全部评分

发表于 2011-12-20 22:49:53 | 显示全部楼层
还原.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "C:\test"
  4. for /f "tokens=1-2 delims=_" %%a in ('dir /b A\*.tif') do (
  5.     move "A\%%a_%%b" "%%a\%%b"
  6. )
复制代码
 楼主| 发表于 2011-12-20 22:57:09 | 显示全部楼层
谢谢啦  你这个脚本是不是只能移动1、2、3这样的文件夹名呀  但是我们的文件夹名  不一定是1、2、3呀
 楼主| 发表于 2011-12-20 23:00:10 | 显示全部楼层
而且 还不一定是顺号的
发表于 2011-12-20 23:01:05 | 显示全部楼层
回复 6# 001011


你咋不早说啊?
 楼主| 发表于 2011-12-20 23:05:59 | 显示全部楼层
呵呵 抱歉了  麻烦您咯
 楼主| 发表于 2011-12-20 23:10:48 | 显示全部楼层
本帖最后由 001011 于 2011-12-20 23:21 编辑

还是按路径取文件夹的名字吧  自动建立“A”文件夹 呵呵
发表于 2011-12-20 23:13:26 | 显示全部楼层
移动.bat
  1. @echo off
  2. set "src=C:\Test\处理前"
  3. set "dst=C:\Test\处理后"
  4. for /f "delims=" %%a in ('dir /b /ad %src%') do (
  5.     for %%b in ("%src%\%%a\*.tif") do (
  6.         move "%%b" "%dst%\%%a_%%~nxb"
  7.     )
  8. )
复制代码
 楼主| 发表于 2011-12-20 23:35:03 | 显示全部楼层
我给了路径
  1. @echo off
  2. set "src=F:\佳美园20 21"
  3. set "dst=F:\A"
  4. for /f "delims=" %%a in ('dir /b /ad %src%') do (
  5.     for %%b in ("%src%\%%a\*.tif") do (
  6.         move "%%b" "%dst%\%%a_%%~nxb"
  7.     )
  8. )
复制代码
 楼主| 发表于 2011-12-20 23:35:43 | 显示全部楼层
怎么不能剪切呢  移动和复制 是同一个BAT吗
发表于 2011-12-20 23:43:25 | 显示全部楼层
回复 11# 001011
  1. @echo off
  2. set "src=F:\佳美园20 21"
  3. set "dst=F:\A"
  4. for /f "delims=" %%a in ('dir /b /ad "%src%"') do (
  5.     for %%b in ("%src%\%%a\*.tif") do (
  6.         echo move "%%b" "%dst%\%%a_%%~nxb"
  7.     )
  8. )
  9. pause
复制代码
你运行这个,把结果给我看看。
 楼主| 发表于 2011-12-20 23:48:56 | 显示全部楼层
提示  找不到文件   但是我发现造成错误的原因是 佳美园20 21  文件名中有个空格
 楼主| 发表于 2011-12-20 23:50:41 | 显示全部楼层
删掉空格就没有问题了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:03 , Processed in 0.022005 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表