2014-05-20 86 views
1

我想寫一個Windows批處理文件來重命名一組基於它們的原始名稱的文件。我基本上想要做的是在文件名中找到文本,並用其他文本替換它。 例如,如果文件的命名結構爲「Family Christmas 001.jpg」,我可能會將其更改爲「Photos - Xmas 001.jpg」。即用「照片 - 聖誕」取代「家庭聖誕節」。這只是一個例子。批處理文件重命名 - 查找和替換

我從這個網站的用戶dbenham發現了一段代碼,它幾乎完全符合我的要求。在這個例子中他取代「120x90」,在文件名以「67x100」 下面的代碼:

@echo off 
setlocal enableDelayedExpansion 
for %%F in (*120x90.jpg) do (
    set "name=%%F" 
    ren "!name!" "!name:120x90=67x100!" 
) 

誰能幫助我適應這個代碼,使其在處理文件名的空間?

感謝

回答

1

所有你缺少的是FOR語句中引號 - 按照你的例子:

@echo off 
setlocal enableDelayedExpansion 
for %%F in ("Family Christmas*.jpg") do (
    set "name=%%F" 
    ren "!name!" "!name:Family Christmas=Photos - Xmas!" 
)