[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 001011 于 2011-12-21 00:25 编辑

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

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2
非常好的论坛

举例说明一下  我现在有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**格式
非常好的论坛

TOP

移动.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. )
复制代码
1

评分人数

    • CrLf: 乐于助人,辛苦了PB + 3 技术 + 1

TOP

还原.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. )
复制代码

TOP

谢谢啦  你这个脚本是不是只能移动1、2、3这样的文件夹名呀  但是我们的文件夹名  不一定是1、2、3呀
非常好的论坛

TOP

而且 还不一定是顺号的
非常好的论坛

TOP

回复 6# 001011


你咋不早说啊?

TOP

呵呵 抱歉了  麻烦您咯
非常好的论坛

TOP

本帖最后由 001011 于 2011-12-20 23:21 编辑

还是按路径取文件夹的名字吧  自动建立“A”文件夹 呵呵
非常好的论坛

TOP

移动.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. )
复制代码

TOP

我给了路径
  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. )
复制代码
非常好的论坛

TOP

怎么不能剪切呢  移动和复制 是同一个BAT吗
非常好的论坛

TOP

回复 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
复制代码
你运行这个,把结果给我看看。

TOP

提示  找不到文件   但是我发现造成错误的原因是 佳美园20 21  文件名中有个空格
非常好的论坛

TOP

删掉空格就没有问题了
非常好的论坛

TOP

返回列表