我需要幫助調整我的批處理腳本,以便它只拾取我正在搜索的單詞出現 2 次或更多次的檔案。目前,這為我提供了所有包含該單詞的檔案,但我不需要該單詞僅出現一次的檔案:
for /f "delims=" %A in ('findstr /i /M "myword" *.txt') do copy "%A" "C:\Desktop\newfolder"
我該如何更改它,以便它只復制“myword”多次出現的文本檔案?
uj5u.com熱心網友回復:
@echo off
for %%a in (*.txt) do (
for /f %%b in ('type "%%a"^|find /c "myword"') do (
if %%b geq 2 echo %%a [actual count: %%b]
)
)
筆記:
find /c不計算字串的出現次數,但包含該單詞的行(一次或多次)并不相同,但可能對您來說已經足夠了。- 您可能希望
find /i /c使其不區分大小寫(查找“myword”和“MyWord”) echo %%a [actual count: %%b]僅用于故障排除,您想用copy最終代碼中的命令替換它。
uj5u.com熱心網友回復:
正如 Stephan 提到的,您可以在 for 回圈中使用 find 命令來捕獲檔案名和相關單詞的計數。然后,您可以根據大于 (GTR) 的 1 評估計數并將檔案復制到新位置:
for /f "tokens=2,3 delims=: " %%a in ('find /i /c "myword" *.txt') do if %%b GTR 1 copy "%%a" "C:\Desktop\newfolder"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/462607.html
