使用搜尋結果

以下指令碼顯示了更高階的分割檔案技術,其中 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 迴圈。