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

[文件操作] [分享]批处理重命名文件只保留最后部分

【问题描述】

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

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

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

TOP

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

TOP

回复 3# zhengzhenhui






批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

TOP

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

TOP

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

TOP

假若"_._"为关键词的话
  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
复制代码

TOP

返回列表