
[已解決]如何批量的提取指定文件名中的特定字符串和數值格式來給文件重命名最后由 xinjinjie 于 -4-25 22:01首先說明一下,已搜索多次,找到類似的帖子學習觀摩,但是發現和我想要達到的效果都不太一樣,所以才發新帖子來請教。想要批量的將文件夾中的文件用文件名中的不連續字符串來給文件重命名,比如文件名:[GRANBLUE FANTASY-The Animation][01][TVRIP][1080p][HEVC_AAC].mkv和[GRANBLUE FANTASY-The Animation][01][TVRIP][1080p][HEVC_AAC].ass,改名為:GRANBLUE FANTASY_01.mkv和GRANBLUE FANTASY_01.ass。我設想的是,在BAT代碼里指定原始文件名中含有的部分字符串,比如“GRANBLUE FANTASY”、“Arrow”,判斷文件夾中有含有這個字符串的文件時獲取一個指定格式的數值,取出這個數值來和前面指定的字符串一起組成新的文件名。比如:[aaaaaaaa][GRANBLUE FANTASY-The Animation][01][TVRIP][1080p][HEVC_AAC].mkv,在代碼里指定“GRANBLUE FANTASY”,“[??]”,最后改名為“GRANBLUE FANTASY_??.mkv”。Arrow.S05E18.1080p.WEB-DL.DD5.1.H264-RARBG.mkv,在代碼里指定“Arrow.S05”,“E??”,最后改名為“Arrow.S05_??.mkv”。ass后綴名的文件用同樣的方式來實現改名。要實現這個效果,應該怎么來寫BAT的代碼呢?借鑒ShowCode大大曾經給出的、解決另一個改文件名需求的代碼,不完全符合這個需求,自己寫了個沒效果的代碼,還請ShowCode大大和其他大大們指點
符合需求的代碼在21樓nclick="copycode($('code0'));">復制代碼
- @echo off
- setlocal enabledelayedexpansion
- for /f delims= %%i in ('dir /b /a-d *GRANBLUE FANTASY*') do (
- set f=100%%~ni
- set f=!f:[%%i]=!
- ren GRANBLUE FANTASY_!f!
- )

