首页 > 解决方案 > 将所有子文件夹中的 files1 重命名为 fileA

问题描述

每当我需要一些东西时,我都会来到这里,此时我需要一些我在这里找到的东西,但在这段代码中想要更多:

@echo off
setlocal enableDelayedExpansion
for %%F in (*.txt) do (
  set "name=%%F"
  ren "!name!" "!name:file1=fileA!"
  ren "!name!" "!name:file2=fileB!"
)

我的问题是:如何重命名此文件夹和子文件夹中的文件 1 和文件 2,并在最后写一条消息“重命名:2 个文件”

谢谢您的帮助。

标签: batch-file

解决方案


要使其递归(处理子文件夹),请添加/R开关。
使用变量来构建新文件名,并且ren每个文件只执行一次命令。

@echo off
setlocal enableDelayedExpansion
set count=0
for /R %%F in (*.txt) do (
  set "newname=%%~nxF"
  set "newname=!newname:file1=fileA!"
  set "newname=!newname:file2=fileB!"
  ren "%%F" "!newname!"
  set /a count+=1
)
echo %count% files renamed

推荐阅读