我有多个文件,例如 test1.html,test2.html ... testn.html ,依此类推,在同一文件夹中,我具有 names.txt 该 test {n} .html 文件的名称。 我该如何遍历 names.txt 文件,并根据其中的行重命名所有html文件?
names.txt 结构如下:
randomName
NameRandom
test
Name
...
答案 0 :(得分:0)
您将需要使用FOR
和SET /a
的组合来完成此操作。实际上,您可以在FOR循环中使用SET /a
来增加一个计数器,以读取names.txt文件,并根据计数器值和行条目来重命名文件。
setlocal enableDelayedExpansion
SET counter=0
FOR /F "usebackq tokens=* delims=" %%f IN (names.txt) DO (
SET /a counter=!counter!+1
ECHO.N:!counter!
REN "test!counter!.html" "%%f.html"
)
要在循环中执行变量操作,您还需要启用延迟扩展(setlocal enableDelayedExpansion
)。
答案 1 :(得分:0)
您可以使用:
@echo off
setlocal EnableDelayedExpansion
set "testn=0"
set "extension=html"
for /F "delims=" %%A IN (names.txt) do (
set /a "testn+=1"
if exist test!testn!.%extension% (
echo Processing test!testn!.%extension%
rename "test!testn!.%extension%" "%%A.%extension%"
) else (
call:finish
)
)
goto:finish
:finish
echo Finished renaming^^!
pause
exit /b
在附加到对方的回答,这将是略更快如果该文件包含超过test*.html
文件的更多行。
延伸是可改变的/定制的,以任何