程序说明: 查找当前目录(含子目录)下特定类型文件中存在指定字符串的所有行。
@echo off
:aa
echo.
echo ————————输入准备————————
echo.
::待查找文件类型(多个文件类型请用空格隔开)
set FILETYPE=*.pas
set /p key= 待查找字符串:
echo 查找文件类型: [%FILETYPE%]
set result=temp_%random%.txt
echo.
findstr /i /s %key% %FILETYPE%>%result%
%result%
echo.
del /f %result%
pause
cls
goto aa
————————————————————————————————————
程序说明:查找并替换当前目录(含子目录)下特定类型文件中指定字符串。
@echo off
:aa
Notepad %0
::-------------------------自定义项目-----------------------------
::指定预处理根目录(递归)
set DPATH=.
::指定预处理文件类型(多个扩展名用空格分开)
set FILETYPE=*.pas
::指定预查找字符串(不支持特殊字符)
set Find_str=time
::指定用于替换的字符串(不支持特殊字符)
set REP_str=Time
::----------------------------------------------------------------
set tmep=replace_bak.tmp
cd %DPATH%
setlocal enabledelayedexpansion
for /r %%k in (%FILETYPE%) do (
set /a sum=sum+1>nul
cd.>"%tmep%"
for /f "tokens=1* delims=:" %%i in ('findstr /i /n .* "%%k"') do (
cls
echo.
echo 正在执行递归批量查找替换... ....
echo.
echo 目标文件类型[ %FILETYPE% ]
echo 待替换字符串[ %Find_str% ]
echo 替换为字符串[ %REP_str% ]
echo 当前修改文件[ %%k ]
echo 当前修改行目[ %%i ]
set str=%%j
if not "!str!"=="" set "str=!str:%Find_str%=%REP_str%!"
>>"%tmep%" echo.!str!
)
move "%tmep%" "%%k"
)
set /a total=!sum!-1
echo.
echo 总计查找了!total!个文件(含文件夹)
echo 执行完毕
echo.
cd %~dp0
if exist %tmep% del /f %tmep%
pause
set sum=0
cls
goto aa