for循环不循环遍历批处理文件中的所有文件

时间:2013-12-14 01:17:01

标签: batch-file for-loop

我是批处理文件的新手所以请温柔!我一直在尝试构建一个简单的批处理文件,以便根据特定的命名约定重命名数千个文本文件。由于文件位置的碎片性质,我希望从与目标文本文件相同的文件夹中运行批处理文件。

虽然脚本在运行时似乎在单个文件上执行正常,但它不会遍历同一文件夹中的所有文件,我不知道为什么!如果我多次运行脚本,最终每个文件都会被翻译,但显然这并不理想。任何帮助非常感谢!

代码如下:

@echo off
setlocal EnableDelayedExpansion
for /f "eol=: delims=" %%a in ("*.txt") do (
   set name=%%~Na
   set prefix=QX
   set newName=!prefix!!name:~0,1!X!name:~1,2!!name:~3!
   ren "%%a" "!newName!%%~Xa"
)

1 个答案:

答案 0 :(得分:0)

尝试这样:

@echo off
set prefix=QX

setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir *.txt /b') do (
                                  set name=%%~Na
                                  set newName=%prefix%!name:~0,1!X!name:~1,2!!name:~3!
                                  ren "%%a" "!newName!%%~Xa")