Board logo

标题: [文件操作] 【已解决】BAT怎么批量把文件夹内的所有子目录的jpg图片移动到他的父目录内呢? [打印本页]

作者: wyx567    时间: 2014-7-30 00:29     标题: 【已解决】BAT怎么批量把文件夹内的所有子目录的jpg图片移动到他的父目录内呢?

怎么批量把文件夹的所有子目录内的jpg图片移动到他的父目录内呢?

比如这样的不同目录
作者: CrLf    时间: 2014-7-30 00:32

操作不可逆,建议先用少量样本测试,确定无误再正式运行
  1. for /r %%a in (*.jpg) do move /y "%%a" "%%~dpa..\"
复制代码

作者: wyx567    时间: 2014-7-30 00:33

目录下直接复制进*.bat文件内运行吗?
作者: wyx567    时间: 2014-7-30 00:50

实验了下,把图片全部移出来了,每个文件夹里面子目录的图片都移动到各自的父文件夹下面,能有这个效果吗?
作者: wyx567    时间: 2014-7-30 01:13

CrLf大大很快回复了:
  1. for /r %%a in (*.jpg) do move /y "%%a" "%%~dpa..\"
复制代码
实验结果是将所有图片都移动到了一起,[attach]7501[/attach]

我的想法是将图片移动到各自的文件夹根目录内,请问怎么实现呢?


如果有可能,移动在各自目录根目录的图片重命名为“各自目录名称.xxx.jpg“这样的名字吗?xxx从001开始到002,003,004这样递增。


万分感谢!
作者: wyx567    时间: 2014-7-30 11:18

顶一顶,求帮助,谢谢了
作者: CrLf    时间: 2014-7-30 20:47

已测无误,不懂你那边什么情况
作者: wyx567    时间: 2014-7-30 22:00

回复 5# CrLf

你好,我想把各自子目录的图片移动到各自的根目录里面,而不是全部移动出来

比如:
c:\1\2.jpg
c:\2\3\4.jpg
c:\3\4\5\6.jpg
c:\4\5\6\7\8.jpg
……
统一移动成

c:\1\2.jpg
c:\2\4.jpg
c:\3\6.jpg
c:\4\8.jpg

以前应该是我没表达清楚,请问这样可以吗?

谢谢!
作者: wyx567    时间: 2014-7-31 00:04

顶一顶,求帮助,谢谢了
作者: wyx567    时间: 2014-7-31 00:04

比如:
c:\1\2.jpg
c:\2\3\4.jpg
c:\3\4\5\6.jpg
c:\4\5\6\7\8.jpg
……
统一移动成

c:\1\2.jpg
c:\2\4.jpg
c:\3\6.jpg
c:\4\8.jpg

请问这样可以吗?


如果有可能,移动在各自目录根目录的图片重命名为“各自目录名称.xxx.jpg“这样的名字吗?xxx从001开始到002,003,004这样递增。

就是:
c:\1\1.001.jpg  1.002.jpg  1.003.jpg ……
c:\2\2.001.jpg  2.002.jpg  2.003.jpg ……
c:\3\3.001.jpg  3.002.jpg  3.003.jpg ……
c:\4\4.001.jpg  4.002.jpg  4.003.jpg ……
作者: apang    时间: 2014-7-31 09:10

本帖最后由 apang 于 2014-7-31 15:49 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. pushd "D:\Test\"
  3. for /d %%a in (*) do (
  4.     set n=1000
  5.     for /f "delims=" %%b in ('dir /a-d /b /s "%%a\*.jpg"') do (
  6.         set /a n+=1 & move "%%b" "%%a\%%a.!n:~1!%%~xb"
  7.     )
  8. )
  9. pause
复制代码
算了,不call了
作者: wyx567    时间: 2014-7-31 16:40

回复 5# apang


神了!!!
完美运行!!
谢谢大神!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2