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

[文件操作] 以文件夹名称命名jpg文件的bat

那个懂bat的大佬帮我写一个bat:
一级文件夹下有很多个二级文件夹,二级文件夹下有很多个三级文件夹,三级文件夹下有很多张图片一般少于100张图片,每张图片是以01.jpg,02.jpg..最后一张是cover是封面
  现在我需要将图片以“三级文件夹的名字+现有图片序号”重命名,而且将最后一张重命名为“三级文件夹的名字+00”变成第一张图片了!

未测试:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /s /b /a-d cover.jpg') do (
  3.     ren "%%a" "00%%~xa"
  4.     for %%i in ("%%~dpa.") do (
  5.         pushd "%%~dpa"
  6.         for /f "delims=" %%j ('dir /b /a-d *.jpg') do ren "%%j" "%%~nxi%%j"
  7.         popd
  8.     )
  9. )
  10. pause
复制代码

TOP

本帖最后由 dos大帝 于 2021-11-9 18:08 编辑
  1. @echo off & cd "D:\dos\一级目录"
  2. for /d %%i in (*) do (
  3. for /d %%j in ("%%i/*") do (
  4. pushd "%%i\%%j"
  5. for /f "delims=" %%k in ('dir "*.jpg" /b') do if "%%~xk" == ".jpg" (if "%%~nk" == "cover" (ren "%%k" "%%j+00") else (ren "%%k" "%%j+%%k"))
  6. popd
  7. )
  8. )
  9. pause
复制代码
只操作三级目录的jpg文件, 其中隐藏目录或文件不会操作(建议运行之前将第6行的最后两个 ren 用 echo 代替, 先打印看看操作文件对不对)

TOP

返回列表