Board logo

标题: [文件操作] 【已解决】批处理如何根据文件夹名移动文件并命名文件夹? [打印本页]

作者: 001011    时间: 2013-11-9 19:10     标题: 【已解决】批处理如何根据文件夹名移动文件并命名文件夹?

本帖最后由 001011 于 2013-11-9 23:18 编辑

E:.
├─XMPG-1988-0001-01-01
├─XMPG-1988-0001-02-01
├─XMPG-1988-0001-03-01
├─XMPG-1988-0002-01-01
├─XMPG-1988-0002-02-01

上面是文件夹的目录树
麻烦老师帮忙
根据文件夹名字中的四位序号生成文件夹
比如:XMPG-1988-0001-01-01
生成0001的文件夹、再在0001的文件夹下建立1的文件夹、然后把XMPG-1988-0001-01-01的文件夹剪切到1李面 并命名为1
XMPG-1988-0001-02-01
生成0001的文件夹、再在0001的文件夹下建立2的文件夹、然后把XMPG-1988-0001-02-01的文件夹剪切到2里面 并命名为1
XMPG-1988-0003-01-01
生成0001的文件夹、再在0001的文件夹下建立3的文件夹、然后把XMPG-1988-0001-03-01的文件夹剪切到3里面 并命名为1
目录树为:
E:.
├─0001
│  ├─1
│  │  └─1
│  ├─2
│  │  └─1
│  └─3
│      └─1
├─0002
│  ├─1
│  │  └─1
│  └─2
│      └─1
依此类推
非常感谢
作者: apang    时间: 2013-11-9 20:49

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /ad/b XMPG-????-????-??-??') do (
  3.     for /f "tokens=3-5 delims=-" %%a in ("%%i") do (
  4.         set /a b=1%%b-100,c=1%%c-100
  5.         md "%%a\!b!\" 2>nul
  6.         move /y "%%i" "%%a\!b!\!c!"
  7.     )
  8. )
  9. pause
复制代码

作者: 001011    时间: 2013-11-9 23:18

非常感谢  完全达到目的了  呵呵




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