2014-10-04 40 views
0

我看到有關該主題的多篇文章我在問一個問題,並試圖應用不同的解決方案,但無法使其工作。我有一組文件xx_date.ext1,我需要批量更改爲xx_date_suf.ext2。但我確實需要列出文件所在的完整目錄路徑。試圖做到這一點的DOS.BAT文件。 我嘗試着將這個解決方案與我的職位之一發現了一些細微的變化:在.bat文件中列出整個文件路徑的批處理文件名稱

setlocal ENABLEDELAYEDEXPANSION 
for %%i in (<Directory name here>\*) do (
    set filename=%%~ni 
    ren "%%~i" "!filename:~0,5!%%~xi" 
) 

endlocal 

無濟於事。我知道上面的解決方案改變了文件名中的5個字符,但我不需要計算字符的數量。只需簡單地重命名我就可以了。

+0

你的代碼,你的解釋是不一樣的。 「xx_date」恰好是7個字符,還是其他格式的文件名? – foxidrive 2014-10-04 17:14:03

+0

我提供了我嘗試使用的示例,但實際上我不想處理字符長度。只需重命名擴展名並添加後綴 – user3235631 2014-10-04 17:31:08

回答

0

這會爲您提供的口頭解釋工作:

@echo off 
cd /d "c:\folder" 
for %%a in (*.ext1) do ren "%%a" "%%~na_suf.ext2" 

或者這樣:

@echo off 
for %%a in ("c:\folder\*.ext1") do ren "%%a" "%%~na_suf.ext2" 
+0

爲什麼我不能使用完整路徑而不是先發出cd命令 – user3235631 2014-10-04 17:22:52

+0

如果您願意,可以使用for命令中的路徑。 – foxidrive 2014-10-04 17:43:26

相關問題