Board logo

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

作者: liaoguinan    时间: 2023-5-15 22:39     标题: 【已解决】批处理如何遍历文件夹下特定的图片名称并修改名称?

本帖最后由 liaoguinan 于 2023-5-17 14:24 编辑


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

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

求大神
作者: jyswjjgdwtdtj    时间: 2023-5-15 22:46

盲写的 可能有错
  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
复制代码

作者: Batcher    时间: 2023-5-15 22:59

回复 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. )
复制代码

作者: liaoguinan    时间: 2023-5-15 23:11

回复 3# Batcher


    很厉害老大,如果是想要运行的时候会出现滚动显示应该 加什么代码呢?最后完成按任意键结束
作者: terse    时间: 2023-5-16 02:48

本帖最后由 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
复制代码

作者: qixiaobin0715    时间: 2023-5-16 08:35

人不能太那个了,要有点分享的精神。独乐乐,与人乐乐,孰乐?
  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
复制代码
未测试。
作者: liaoguinan    时间: 2023-5-16 18:43

回复 6# qixiaobin0715


    感谢,谢谢,明白这就开放也是,帮助需要的人




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