2011-10-01 158 views
0

我在波紋管格式某些文件(大約10000個文件)批量重命名文件夾

SDEF-2001-23965-236.pdf 
SlkF-1991-65-123.pdf 

我要檢查,如果文件名是在通緝格式從年底

刪除4個字符重新命名它的文件
SDEF-2001-23965-236.pdf >>SDEF-2001-23965.pdf 

SlkF-1991-65-123.pdf >>SlkF-1991-65.pdf 

我不知道如何創建一個可以做我需要的.bat文件。

回答

2

你需要在DOS 「字符串操作」,下面的鏈接是有用的:

http://www.dostips.com/DtTipsStringManipulation.php


如果你有*.pdf文件與格式aaaa-bbb-cc-ddd.ext(4件+擴展名)

創建一個名爲rn.bat的文件:

@echo off 
set str=%1 
for /f "tokens=1,2,3,4 delims=- " %%a in ("%str%") do set p1=%%a&set p2=%%b&set p3=%%c&set p4=%%d 
set ext=%str:~-4% 
set "result=%p1%-%p2%-%p3%%ext%" 
ren %1 %result% 

創建一個名爲rnall.bat文件:

@echo off 
for %%i in (%1) do rml.bat %%i 

然後,輸入命令:在條命令行rnall *.pdf

這不是最好的代碼,你可以使用的功能做的更好

+0

我寫了某事。這樣 @迴響 SETLOCAL enabledelayedexpansion FOR %% A IN(* .PDF)DO( \t組ST2 = 「%% A」 \t組ST1 =%ST2:〜0,-8% \t回聲REN %% A%ST1% ) GOTO:EOF 暫停 但設置ST2 = 「%% A」 不起作用 我發現它的回聲命令 – ghasedak

+0

@ghasedak:您正在啓用這個延遲擴展例如,但你沒有使用它,爲什麼?我的意思是,'%st2:〜0,-8%'應該可能是'!st2:〜0,-8!'和'%st1%'應該是'!st1!'。 –