我有一個文件夾中的多個文本文件,我正在搜索的內容和重命名找到的文件,但有問題。當我運行批處理時,它將所有找到的文件重命名爲相同的文件名。因此,如果它發現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