批处理文件 - 语法错误 - 使用循环重命名文件

时间:2016-01-05 11:45:06

标签: windows batch-file syntax rename

我正在尝试使用批处理文件重命名很多文件。 例: 旧文件名:"文件2133.pdf" 新文件名:" document_NewFile_document 2133.pdf"

新文件名包含旧文件名的第一部分,扩展名(" NewFile")和完整的旧文件名。

问题是只有" echo"我的批处理工作正在进行 - 但不是"重命名":

like '%contaminate%' 
like '%contaminat%'
like '%contamina%'
like '%contamin%'
...
like '%ontaminate%'
like '%ntaminate%'
like '%taminate%'
...
like '%ont%'
like '%ami%'
like '%nat%'
...

如果我改变了#34; echo"进入"重命名" - >语法错误。

3 个答案:

答案 0 :(得分:0)

对于rename命令,您需要指定%% i文件的完整路径。

例如:

 for %%i in (all/*.*) do for /f %%u in ("%%~ni") do (
rename "c:\temp\all\%%i" "%%u_NewFile_%%~xi"
)

答案 1 :(得分:0)

尝试此操作,无需对路径进行硬编码(除了all文件夹):

@echo off
for %%i in (all/*.*) do for /f %%u in ("%%~ni") do (
   rename "%%~dpiall\%%~nxi" "%%u_NewFile_%%~nxi"
)

答案 2 :(得分:0)

我认为这就是你想要的:

cd all
for %%i in (*.*) do for /f %%u in ("%%i") do (
    ren "%%i" "%%u_NewFile_%%i"
)