Board logo

标题: [文件操作] [分享]批处理重命名文件只保留最后部分 [打印本页]

作者: Batcher    时间: 2024-4-29 13:14     标题: [分享]批处理重命名文件只保留最后部分

【问题描述】

大佬们,我这个应该怎么写?我只想要红框的内容


作者: Batcher    时间: 2024-4-29 13:14

【解决方案】
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "tokens=1-8* delims=_" %%a in ('dir /b /a-d *_*_*.mp4') do (
  4.     if "%%i" == "" (
  5.         echo ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h" ---^> "%%h"
  6.         ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h" "%%h"
  7.     ) else (
  8.         echo ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h_%%i" ---^> "%%h_%%i"
  9.         ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h_%%i" "%%h_%%i"
  10.     )
  11. )
  12. pause
复制代码

作者: zhengzhenhui    时间: 2024-4-29 14:08

第三行的代码   _    是作为分隔符去区分的吗
上述出现三个( _)可以这样理解不  2024-7-8-图片名,此代码就可以排除掉_之前的字而保留
作者: Batcher    时间: 2024-4-29 14:15

回复 3# zhengzhenhui






批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
作者: qixiaobin0715    时间: 2024-4-29 15:25

本帖最后由 qixiaobin0715 于 2024-4-29 15:30 编辑

从示范文件名来看,最终重命名结果就是原文件名去掉以"_"分隔的前6段字符,保留其余。
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "tokens=1-6* delims=_" %%a in ('dir /b /a-d *_*_*.mp4') do (
  4.     ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g" "%%g"
  5. )
  6. pause
复制代码

作者: aloha20200628    时间: 2024-4-29 17:55

本帖最后由 aloha20200628 于 2024-4-29 17:57 编辑

  1. @echo off
  2. for /f "tokens=1-2 delims=·" %%a in (' dir /b/a-d "*_·_*.mp4" ') do for /f "tokens=1 delims=_" %%A in ("%%b") do ren "%%a·%%b" "%%A"
  3. pause&exit/b
复制代码

作者: semiuel    时间: 2024-4-29 23:22

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b/a-d "*_._*.mp4"') do (
  4. set aa=%%i
  5. set bb=!aa:~63,30!
  6. echo ren "!aa!" "!bb!"
  7. )
  8. pause
复制代码

作者: terse    时间: 2024-4-30 06:53

假若"_._"为关键词的话
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /b/a-d "*_._*.mp4"') do (
  3.      set file=%%i
  4.      ren "!file!" "!file:*_._=!"
  5. )
  6. pause
复制代码





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