Windows .bat文件中列出整个文件路径的批处理文件名

Windows .bat文件中列出整个文件路径的批处理文件名,windows,batch-file,rename,Windows,Batch File,Rename,我看到了多篇关于我要问的问题的帖子,并尝试应用不同的解决方案,但都无法奏效。我有一组文件xx_date.ext1,需要批量更改为xx_date_suf.ext2。但是我需要列出文件所在的完整目录路径。正在尝试使用dos.bat文件。 我尝试应用此解决方案,但在其中一篇帖子中发现了一些小改动: setlocal ENABLEDELAYEDEXPANSION for %%i in (<Directory name here>\*) do ( set filename=%%~ni

我看到了多篇关于我要问的问题的帖子,并尝试应用不同的解决方案,但都无法奏效。我有一组文件xx_date.ext1,需要批量更改为xx_date_suf.ext2。但是我需要列出文件所在的完整目录路径。正在尝试使用dos.bat文件。 我尝试应用此解决方案,但在其中一篇帖子中发现了一些小改动:

setlocal ENABLEDELAYEDEXPANSION
for %%i in (<Directory name here>\*) do (
  set filename=%%~ni
  ren "%%~i" "!filename:~0,5!%%~xi"
)

endlocal

没用。我知道上述解决方案会更改文件名中的5个字符,但我不需要计算字符数。只需简单地重命名我上面描述的名称。

这将适用于您提供的口头解释:

@echo off
cd /d "c:\folder"
for %%a in (*.ext1) do ren "%%a" "%%~na_suf.ext2"
或者这个:

@echo off
for %%a in ("c:\folder\*.ext1") do ren "%%a" "%%~na_suf.ext2"

你的代码和解释不一样。xx_date正好是7个字符还是文件名是其他格式?我提供了我尝试使用的示例,但实际上我不想处理字符长度。只需重命名扩展名并添加后缀为什么我不能使用完整路径而不是首先发出cd命令