我有一个文件夹中的多个文本文件,我正在搜索的内容和重命名找到的文件,但有问题。当我运行批处理时,它将所有找到的文件重命名为相同的文件名。因此,如果它发现3个文件中包含字符串,则将它们全部重命名为相同的文件。还有点新东西这个东西。我试图找到字符串 “测试1” 中的所有文本文件中,然后重命名发现test1.txt的文件,TEST1(2).TXT等批处理文件重命名文件夹中的文件
@ECHO OFF
@SETLOCAL enableextensions disabledelayedexpansion
SET "sourcedir=C:\test"
SET "searchfor=test1"
FOR /f "delims=" %%a IN ('findstr /m /L /c:"%searchfor%" "%sourcedir%\*.txt"') DO (
REN "%%a" "%searchfor%.txt"
)
之前'REN'aming你将不得不添加计数器,_probably使用'SET/A'_,然后在'EXIST'中使用'IF \ ELSE'表达式。 – Compo
它不是你的问题的答案,但你应该使用'('findstr/m/L/c:“\ <%searchfor%\>”“%sourcedir%\ *。txt”')'以避免包含test1的单词,但不仅仅是test1 –
@UlugToprak,当规定**'/ L' **时,正则表达式**'**和**'**>应该被看作是文字字符并且不能与预期的字符串匹配。 – Compo