我有要求生成一個簡單的.BAT腳本/文件。我認爲它是容易的,但我自己錯了:-(CMD/BATCH編程 - 文件內容搜索和文件內容修改
的BAT腳本有(我相信):
- 取一個const搜索字符串搜索
- 以絕對的文件夾路徑「開始」目錄
- 取一個文件名面膜/正則表達式搜索
- 以一個常量字符串被「附加」的文件的內容
- 遞歸遍歷所有文件迭代的啓動目錄和子目錄(n級下)搜索(和「處理」)任何與文件名掩碼/正則表達式匹配的文件
- 搜索「當前」文件的內容(全部「是可以在NOTEPAD中打開的文本」文件),搜索字符串。搜索字符串可以在文件中的任何位置找到0,1或多次。
- 如果發現searchstring,則什麼也不做。如果未找到搜索字符串,請將新字符串附加到文件末尾。瞧! (理論上)
繼承人我已經,並沒有真正的工作。我可以看到幾個問題。如何獲得「當前文件」,也可能如何在每個文件後「重置」ERRORLEVEL。
SET SEARCHSTRING="search for this text"
SET STARTPATH="C:\StartFolder\*"
SET MATCHFILES="*.txt"
SET APPENDSTRING="Appended text"
findstr /c:%SEARCHSTRING% /b /i /d:%STARTPATH% %MATCHFILES%
SET FOUND=%ERRORLEVEL%
REM 0=true, 1=false
IF %FOUND%==1 (
REM ISSUE: How to get "current" file path???
REM %APPENDSTRING% >> %CURRENTFILEPATH%
)
任何問題/建議,非常歡迎
乾杯
凱爾
爲候選單獨的文件,然後又訪問您可以使用FOR循環的FINDSTR的結果看結果,或FINDSTR結果重定向到一個文件,然後解析,請參見http:// stackoverflow.com/questions/8942211/extract-found-line-subsequent-line-from-a-text-file的想法 –