如果文件名少於18位,我有一個腳本在文件名中預置了零。使用批處理腳本重命名文件
例如,如果文件名是1234567
,那麼就應該把它重命名爲0000000000
如果是123456789
,那麼它使00000000
。我的代碼已經在做這個功能現在
我的要求是,如果文件名是1234567-1
,那麼就應該讓0000000000_Type_1
,如果名稱是1234567-a
,那麼就應該把它重命名爲0000000000_Type_a
。
這意味着它應該繼續做我的腳本做的事情,但另外它應該在文件名中加上_Type_<last character>
。文件名可以是1234567
或123456789
或1234567-1
或12345678-b
或其他任何東西,但連字符( - )前總是有數字而不是字符。文件夾中可以有多個文件。連字符( - )應該用下劃線(_)替換,後面跟Type_
,以及文件名中最後一個字符。
這裏是我現有的代碼:
@echo off
setlocal enableextensions enabledelayedexpansion
rem iterate over tif files:
for %%f in (C:\Task\Drop_Files\*.tif) do (
rem store file name without extension
set FileName=%%~nf
rem Add leading zeroes:
set FileName=00000000000000000!FileName!
set FileName=!FileName:~-18!
set FileName=!FileName!%%~xf
rem Rename the file
rename "%%f" "!FileName!"
)
如果原始文件名爲0000000000012783_1,則您的代碼生成的文件名爲0000000000012783_1_Type_0000000012783_1。它應該是0000000000012783_Type_1。你能告訴我該怎麼辦? – shuru
對不起,我沒有申請延期擴展'後綴'一次 - 見我的[編輯](http://stackoverflow.com/revisions/39150386/2)... – aschipfl
...它的工作....謝謝 – shuru