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

[文件操作] 【已解决】批处理如何遍历文件夹下特定的图片名称并修改名称?

[复制链接]
发表于 2023-5-15 22:39:15 | 显示全部楼层 |阅读模式
本帖最后由 liaoguinan 于 2023-5-17 14:24 编辑


图一、图二、图三均为文件原本样式
图四是手动修改文件名的最终样式

如何遍历文件夹,把文件夹里面的00-88、00-99这两个带前缀的文件,把前缀去掉,如图四,每个文件夹对应的前缀均为文件夹名称,比如322文件夹下的就是322-00-88、322-00-99

求大神

评分

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

查看全部评分

发表于 2023-5-15 22:46:29 | 显示全部楼层
盲写的 可能有错

  1. set re=new regexp
  2. set fso=createobject("scripting.filesystemobject")
  3. for each folder1 in fso.getfolder("新建文件夹8 这里填顶层文件夹").subfolders'新建文件夹8
  4. for each folder2 in folder1.subfolders'01-321-324
  5. n=folder2.name
  6. re.pattern="^"&n&"-"
  7. for each file in folder2.files'321
  8. file.name=re.replace(file.name,"")
  9. next
  10. next
  11. next
复制代码
发表于 2023-5-15 22:59:42 | 显示全部楼层
回复 1# liaoguinan


test-1.bat 放在首层文件夹下执行

请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%a in ('dir /b /s /a-d *-*-*.jpg') do (
  5.     set "OldName=%%~nxa"
  6.     for /f "delims=" %%b in ("%%a\..") do (
  7.         set "NewName=!OldName:%%~nxb-=!"
  8.     )
  9.     ren "%%a" "!NewName!"
  10. )
复制代码

评分

参与人数 1技术 +1 收起 理由
liaoguinan + 1 谢谢

查看全部评分

 楼主| 发表于 2023-5-15 23:11:31 | 显示全部楼层
回复 3# Batcher


    很厉害老大,如果是想要运行的时候会出现滚动显示应该 加什么代码呢?最后完成按任意键结束
发表于 2023-5-16 02:48:46 | 显示全部楼层
本帖最后由 terse 于 2023-5-16 08:33 编辑

修正一下 加个循环加个循环

  1. @echo off&setlocal enabledelayedexpansion
  2. set "folder=新建文件夹 (8)"
  3. for /f  "delims=" %%a in ('dir /ad /b "%folder%"') do (
  4.      for /f %%b in ('dir /b /ad "%folder%\%%a"') do (
  5.           for %%c in ("%folder%\%%a\%%b\%%b-*-*.*") do (
  6.                 set "str=%%~nxc"
  7.                 ren "%%c" "!str:*%%b-=!"
  8.           )
  9.      )
  10. )
  11. pause
复制代码
不用DIR

  1. @echo off&setlocal enabledelayedexpansion
  2. set "folder=新建文件夹 (8)"
  3. for /d %%a in ("%folder%\*") do (
  4.      for /d %%b in ("%%a\*") do (
  5.           for %%c in ("%%b\%%~nb-*-*.*") do (
  6.                 set "str=%%~nxc"
  7.                 ren "%%c" "!str:*%%~nb-=!"
  8.           )
  9.      )
  10. )
  11. pause
复制代码
发表于 2023-5-16 08:35:14 | 显示全部楼层
人不能太那个了,要有点分享的精神。独乐乐,与人乐乐,孰乐?
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /ad') do (
  3.     pushd "%%i"
  4.     if exist "%%~nxi-*.jpg" (
  5.         for /f "tokens=1* delims=-" %%j in ('dir /b /a-d "%%~nxi-*.jpg"') do (
  6.             ren "%%j-%%k" "%%k"
  7.         )
  8.     )
  9.     popd
  10. )
  11. pause
复制代码
未测试。
 楼主| 发表于 2023-5-16 18:43:07 | 显示全部楼层
回复 6# qixiaobin0715


    感谢,谢谢,明白这就开放也是,帮助需要的人
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 21:12 , Processed in 0.020698 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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