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

[文件操作] [已解决]批处理根据文件夹名分文件夹 并命名

[复制链接]
发表于 2015-5-1 21:57:47 | 显示全部楼层 |阅读模式
路径下有很多这样的文件夹  里面都是JPG的图片文件
DYJW-2008-0001-001
DYJW-2008-0001-002
DYJW-2008-0002-001
DYJW-2008-0002-002
DYJW-2008-0002-003
DDAA-2009-0001-001
DDAA-2009-0001-002
根据文件夹名字分文件夹
如图:

这里  DYJW-2008-0001-001 最后面的001变成1,再在这个下面加一个1
比如这个DYJW-2008-0001-002 最后面的002变成2,再在这个下面加一个1
如图:
DDAA-2009-0001-001
DDAA-2009-0001-002
这两个就变成:

最终变成这样的文件夹结构

评分

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

查看全部评分

发表于 2015-5-1 22:12:44 | 显示全部楼层
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. for /f "tokens=1,2,3,4 delims=-" %%a in ('dir /a:d/b') do (
  4.     set /a n=0+%%d
  5.     md %%a\%%b\%%c\!n!\1
  6. )
复制代码
 楼主| 发表于 2015-5-1 22:16:42 | 显示全部楼层
本帖最后由 001011 于 2015-5-1 22:20 编辑

回复 2# czjt1234
感谢您的回复,文件夹分的是正确的,就是没有把相应的图片放进去,放进图片后把原始文件夹删掉。麻烦您再改进一下  谢谢
发表于 2015-5-2 11:44:56 | 显示全部楼层
本帖最后由 pcl_test 于 2015-5-2 12:54 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1-4 delims=-" %%a in ('dir /ad /b') do (
  3. md "%%a-%%b-%%c-%%d\1"
  4. move "%%a-%%b-%%c-%%d\*.jpg" "%%a-%%b-%%c-%%d\1" 2>nul
  5. set /a n=0+%%d
  6. ren "%%a-%%b-%%c-%%d" "%%a-%%b-%%c-!n!"
  7. )
  8. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
001011 + 1 非常感谢

查看全部评分

 楼主| 发表于 2015-5-2 12:35:33 | 显示全部楼层
回复 4# pcl_test

提示:存在一个重名文件,或是找不到文件
发表于 2015-5-2 12:54:38 | 显示全部楼层
回复 5# 001011

文件夹没有图片,已修改
 楼主| 发表于 2015-5-2 14:20:14 | 显示全部楼层
根据 pcl_test 的代码  调节成我需要的功能  谢谢pcl_test
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=1,2,3,4 delims=-" %%a in ('dir /a:d/b') do (
    set /a n=0+%%d
ren "%%a-%%b-%%c-%%d" "%%a-%%b-%%c-!n!"
)
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1-4 delims=-" %%a in ('dir /ad /b') do (
md "%%a\%%b\%%c\%%d\1"
move "%%a-%%b-%%c-%%d\*.jpg" "%%a\%%b\%%c\%%d\1\" 2>nul
)
pause
 楼主| 发表于 2015-5-2 14:20:58 | 显示全部楼层
先把最后面的变成一位数
建立文件夹
剪切图片
OK
发表于 2015-5-4 14:44:07 | 显示全部楼层
好东西,以后能用!!
发表于 2015-5-4 18:12:20 | 显示全部楼层
回复 2# czjt1234


    set /a n=0+%%d 的办法要是碰到 %%d=008 的情况咋办?
 楼主| 发表于 2015-5-5 10:09:02 | 显示全部楼层
回复 10# CrLf
您好  按照你的提示 我做了一下测试  008  009  010都会出错啊
麻烦您帮忙修正一下把
感谢
发表于 2015-5-5 23:24:04 | 显示全部楼层
回复 11# 001011


    set /a n=0+%%d 改成 set /a n=1000%%d %% 1000
    话说 010 好像不会出错的吧...
 楼主| 发表于 2015-5-7 10:21:02 | 显示全部楼层
回复 12# CrLf

非常感谢  原先的代码  10会出错的   变成1了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 14:16 , Processed in 0.021517 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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