标题: [文件操作] [分享]批处理重命名文件只保留最后部分 [打印本页]
作者: Batcher 时间: 2024-4-29 13:14 标题: [分享]批处理重命名文件只保留最后部分
【问题描述】
大佬们,我这个应该怎么写?我只想要红框的内容
作者: Batcher 时间: 2024-4-29 13:14
【解决方案】- @echo off
- cd /d "%~dp0"
- for /f "tokens=1-8* delims=_" %%a in ('dir /b /a-d *_*_*.mp4') do (
- if "%%i" == "" (
- echo ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h" ---^> "%%h"
- ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h" "%%h"
- ) else (
- echo ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h_%%i" ---^> "%%h_%%i"
- ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h_%%i" "%%h_%%i"
- )
- )
- 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段字符,保留其余。- @echo off
- cd /d "%~dp0"
- for /f "tokens=1-6* delims=_" %%a in ('dir /b /a-d *_*_*.mp4') do (
- ren "%%a_%%b_%%c_%%d_%%e_%%f_%%g" "%%g"
- )
- pause
复制代码
作者: aloha20200628 时间: 2024-4-29 17:55
本帖最后由 aloha20200628 于 2024-4-29 17:57 编辑
- @echo off
- 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"
- pause&exit/b
复制代码
作者: semiuel 时间: 2024-4-29 23:22
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b/a-d "*_._*.mp4"') do (
- set aa=%%i
- set bb=!aa:~63,30!
- echo ren "!aa!" "!bb!"
- )
- pause
复制代码
作者: terse 时间: 2024-4-30 06:53
假若"_._"为关键词的话- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b/a-d "*_._*.mp4"') do (
- set file=%%i
- ren "!file!" "!file:*_._=!"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |