批处理:根据dir命令重命名文件

时间:2015-01-15 08:12:02

标签: batch-file batch-processing dir batch-rename

我有一个问题是将文件重命名为dir的结果。 示例:

我在C盘中有一个文件夹名称候选人,而在候选人文件夹中有以下文件:

  1. something.txt
  2. everything.doc
  3. onething.bmp
  4. 当我 dir 时,我会获得文件列表。

    在文件夹中将始终是1个txt文件和1个bmp文件

    如何重命名BMP文件,使其与TXT文件具有相同的名称,假设我使用 dir * .txt

    在上面的示例中,如何将 onething.bmp 更改为 something.bmp

    提前感谢您的回答

2 个答案:

答案 0 :(得分:1)

for %%X in ("*.txt") do (
 for %%Y in ("*.bmp") do (
  echo ren %%Y %%~nX%%~xY
 )
)
如果您需要输出,请

删除echo

有关%%~nX等的说明,请参阅for /?

答案 1 :(得分:0)

这应该有效:

@ECHO OFF
FOR %%X in ("*.txt") DO (SET txtName=%%X)
FOR %%X in ("*.bmp") DO (SET bmpName=%%X)
FOR /F "tokens=1 delims=." %%X IN ("%txtName%") DO (
    REN %bmpName% %%X.bmp
)

这仅在bat文件与txt和bmp文件位于同一文件夹中时才有效。如果它位于其他地方,您将不得不调整路径。 如果falkder中有几个bmp / txt文件,只有" last"文件将被处理。