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

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

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


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

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

求大神
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

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

TOP

回复 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

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher


    很厉害老大,如果是想要运行的时候会出现滚动显示应该 加什么代码呢?最后完成按任意键结束

TOP

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

TOP

人不能太那个了,要有点分享的精神。独乐乐,与人乐乐,孰乐?
  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
复制代码
未测试。

TOP

回复 6# qixiaobin0715


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

TOP

返回列表