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

[文件操作] 【已解决】批处理文件夹及文件夹内部的文件

[复制链接]
 楼主| 发表于 2020-10-15 20:14:42 | 显示全部楼层
回复 30# WHY

已经行了,非常棒。感谢感谢!!但是我想把所有01234文件夹下面的a文件夹下面的图片放入attack,d文件夹下面的图片放入dead....其他的也是以这种方式类推。。我该改哪里,
发表于 2020-10-16 10:07:52 | 显示全部楼层
回复 31# miss_sokuber


    图片命名规则:第一个字符是0,第二个字符是0,1,2,3,4这五个文件夹其中一个的名称+1,然后接3个0,最后一个字符是从0开始顺延的自然数,结果是:0(数字文件夹名称+1)0000,0(数字文件夹名称+1)0001...,
新创建文件夹命名:attack,dead,hit,run,stand,
attack包括0,1,2,3,4下面的a
dead包括0,1,2,3,4下面的d
hit包括0,1,2,3,4下面的h
run包括0,1,2,3,4下面的r
stand包括0,1,2,3,4下面的s
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (attack dead hit run stand) do (
  4.     set "s=%%i" & set "s=!s:~0,1!"
  5.     set "_!s!=%%i"
  6. )
  7. REM 查找png文件,其上一级目录名为a、d、h、r、s,上上一级目录名为数字0-4
  8. for /f "delims=" %%i in ('dir /b /a-d /s *.png ^| findstr /i "\\[0-4]\\[adhrs]\\[^\\]*$"') do (
  9.     REM 当前png文件所在的目录
  10.     set "curPath=%%~dpi"
  11.     if /i "!prePath!" NEQ "!curPath!" (
  12.         REM png文件的上上一级目录
  13.         for %%j in ("%%i\..\..") do set /a n = "(%%~nj + 1) * 10000"
  14.         for %%j in ("%%i\..") do (
  15.             set "newFolder=!_%%~nj!"
  16.             md "%%i\..\..\..\!newFolder!" 2>nul
  17.         )
  18.     ) else (
  19.         set /a n+=1
  20.     )
  21.     REM 前一个png文件所在的目录
  22.     set "prePath=%%~dpi"
  23.     move "%%i" "%%i\..\..\..\!newFolder!\0!n!%%~xi"
  24. )
  25. REM 删除空目录
  26. for /f "delims=" %%i in ('dir /b /ad /s ^| sort /r') do rd "%%i" 2>nul
  27. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
miss_sokuber + 1 非常棒

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 00:08 , Processed in 0.026462 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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