使用搜索结果

以下脚本显示了更高级的分割文件技术,其中 FOR 函数循环遍历目录中的文件列表,并且每个文件内容通过管道传输到 FINDSTR,查找包含子字符串 var 的字符串,前面带有未定义的空格数,并被任何额外的空格取代文本。找到后,搜索到的文件将替换为仅包含搜索字符串上方文本部分的新文件。

@echo off
setlocal enabledelayedexpansion
pushd "%temp%\Test"
for %%G in ("*.txt") do (set "break="
    (for /f "tokens=*" %%H in (%%~G) do (
        if not defined break (
            echo %%H | findstr /r /b /c:"[ ]*var.*" >nul && set break=TRUE || echo %%H )
    )) >> %%~nG_mod.txt
    del %%~G & ren %%~nG_mod.txt %%G )
popd
exit /b

注意,一旦找到第一次出现的搜索字符串,设置 break=TRUE 如何允许从搜索的文件中退出 FOR 循环。