【问题标题】:Batch file - Syntax error - rename files with loop批处理文件 - 语法错误 - 使用循环重命名文件
【发布时间】:2016-04-09 05:38:49
【问题描述】:

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

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

问题是只有“echo”才能使我的批处理工作 - 但不能使用“rename”:

for %%i in (all/*.*) do for /f %%u in ("%%~ni") do (
   echo "%%i" "%%u_NewFile_%%~xi"
)

如果我将“echo”更改为“rename”-> 语法错误。

【问题讨论】:

  • 那么只要echo 就位,输出是什么?

标签: windows batch-file syntax rename


【解决方案1】:

我想这就是你想要的:

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

【讨论】:

    【解决方案2】:

    试试这个,无需硬编码路径即可工作(所有文件夹除外):

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

    【讨论】:

    • @DennisvanGils,我尝试了您的示例,但它不起作用我有 4 个文件的 .cfx 分机,我正在尝试批量重命名我有一个工作文件夹,它看起来像这样 @987654322 @如何使用您的 for 循环重命名所有现有文件
    【解决方案3】:

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

    例如:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 2014-02-26
      • 1970-01-01
      • 2019-06-08
      • 2013-06-25
      • 1970-01-01
      相关资源
      最近更新 更多