
标题: [文件操作] [已解决]有多个文件夹 每个里面都有一些图片 要求批量剪切到一个文件夹 [打印本页]
作者: 001011 时间: 2011-12-20 22:10 标题: [已解决]有多个文件夹 每个里面都有一些图片 要求批量剪切到一个文件夹
本帖最后由 001011 于 2011-12-21 00:25 编辑
有多个文件夹 每个里面都有一些图片 要求批量剪切到一个文件夹 对这些图片集中处理 然后再还原到原来的文件夹里面
作者: 001011 时间: 2011-12-20 22:19
举例说明一下 我现在有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**格式
作者: awk 时间: 2011-12-20 22:47
移动.bat- @echo off
- setlocal enabledelayedexpansion
- cd /d "C:\test"
- for /l %%a in (1,1,3) do (
- for %%b in ("%%a\*.tif") do (
- set "newname=%%b"
- set "newname=!newname:\=_!"
- move "%%b" "A\!newname!"
- )
- )
复制代码
作者: awk 时间: 2011-12-20 22:49
还原.bat- @echo off
- setlocal enabledelayedexpansion
- cd /d "C:\test"
- for /f "tokens=1-2 delims=_" %%a in ('dir /b A\*.tif') do (
- move "A\%%a_%%b" "%%a\%%b"
- )
复制代码
作者: 001011 时间: 2011-12-20 22:57
谢谢啦 你这个脚本是不是只能移动1、2、3这样的文件夹名呀 但是我们的文件夹名 不一定是1、2、3呀
作者: 001011 时间: 2011-12-20 23:00
而且 还不一定是顺号的
作者: awk 时间: 2011-12-20 23:01
回复 6# 001011
你咋不早说啊?
作者: 001011 时间: 2011-12-20 23:05
呵呵 抱歉了 麻烦您咯
作者: 001011 时间: 2011-12-20 23:10
本帖最后由 001011 于 2011-12-20 23:21 编辑
还是按路径取文件夹的名字吧 自动建立“A”文件夹 呵呵
作者: awk 时间: 2011-12-20 23:13
移动.bat- @echo off
- set "src=C:\Test\处理前"
- set "dst=C:\Test\处理后"
- for /f "delims=" %%a in ('dir /b /ad %src%') do (
- for %%b in ("%src%\%%a\*.tif") do (
- move "%%b" "%dst%\%%a_%%~nxb"
- )
- )
复制代码
作者: 001011 时间: 2011-12-20 23:35
我给了路径- @echo off
- set "src=F:\佳美园20 21"
- set "dst=F:\A"
- for /f "delims=" %%a in ('dir /b /ad %src%') do (
- for %%b in ("%src%\%%a\*.tif") do (
- move "%%b" "%dst%\%%a_%%~nxb"
- )
- )
复制代码
作者: 001011 时间: 2011-12-20 23:35
怎么不能剪切呢 移动和复制 是同一个BAT吗
作者: awk 时间: 2011-12-20 23:43
回复 11# 001011 - @echo off
- set "src=F:\佳美园20 21"
- set "dst=F:\A"
- for /f "delims=" %%a in ('dir /b /ad "%src%"') do (
- for %%b in ("%src%\%%a\*.tif") do (
- echo move "%%b" "%dst%\%%a_%%~nxb"
- )
- )
- pause
复制代码
你运行这个,把结果给我看看。
作者: 001011 时间: 2011-12-20 23:48
提示 找不到文件 但是我发现造成错误的原因是 佳美园20 21 文件名中有个空格
作者: 001011 时间: 2011-12-20 23:50
删掉空格就没有问题了
作者: awk 时间: 2011-12-20 23:50
回复 14# 001011
像13楼那样给%src%加上双引号
作者: 001011 时间: 2011-12-20 23:53
不对呀 我把文件名的空格去掉以后运行脚本第二个脚本 只是看到BAT界面 把每张图都找到了 提示按任意键继续 但是图没有剪切过去 第一个脚本正常
作者: awk 时间: 2011-12-20 23:55
回复 17# 001011
第二个脚本是可以处理带空格的文件夹的
你把move前面的echo删掉就行了
作者: 001011 时间: 2011-12-20 23:58
OK 可以剪切了 还原呢 呵呵
作者: awk 时间: 2011-12-21 00:09
回复 19# 001011
还原.bat- @echo off
- set "src=F:\佳美园20 21"
- set "dst=F:\A"
- for /f "tokens=1-2 delims=_" %%a in ('dir /b "%dst%\*.tif"') do (
- move "%dst%\%%a_%%b" "%src%\%%a\%%b"
- )
复制代码
作者: 001011 时间: 2011-12-21 00:25
非常感谢 辛苦咯
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |