使用批处理重命名文件,但仅限以“*D.txt”结尾的文件

使用批处理重命名文件,但仅限以“*D.txt”结尾的文件

我想重命名单个目录中的所有文件,但只重命名以 .txt 结尾的文件D

这是我批量尝试过的方法...但都没有用。

-----尝试1-----

@echo off
 set Quelle="C:\temp\TEST\IN\"
 Set DateiFilter="*D.txt"
 for /r %Quelle% %%i in (%DateiFilter%) do rename %%i %%~niI.txt
 end

-----try2-----

@echo on
setlocal enableDelayedExpansion
set Quelle="C:\temp\TEST\IN\"
Set DateiFilter="*.txt"
set y="D"
set z="I"
for /r %Quelle% %%i in (%DateiFilter%) do (set x=%%i rename "%%i" "!x:D.txt=I.txt!")
pause
end

答案1

在 OP 的评论中回答

@echo off 
pushd "C:\temp\TEST\IN\" 
setlocal enabledelayedexpansion 
for /f "delims=" %%a in ('dir "*D.txt" /b /a-d ') do (
   set "name=%%~na" 
   set "name=!name:~0,-1!I" 
   ren "%%a" "!name!%%~xa"
)
popd 
pause 

相关内容