我有要求生成一个简单的.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的想法 –