Windows 批处理文件,用于从多个文件夹中的多个txt文件中提取文本

Windows 批处理文件,用于从多个文件夹中的多个txt文件中提取文本,windows,batch-file,cmd,Windows,Batch File,Cmd,在下面的代码中,我想从日志文件myFile.log中提取特定字符串这是特定字符串后的版本,该文件可以使用批处理文件在目录的子目录中找到 请帮助我从多个目录中的多个日志文件中提取此特定字符串这是版本(此目录具有相同的内容) 我有包含以下信息的日志文件(这只是myFile.log的一部分): 例如: @echo off>newfile&setLocal启用延迟扩展 集合C= 设定= 对于/f“tokens=1*delims=[]”中的%%a('find/v/n“\\\”^

在下面的代码中,我想从日志文件
myFile.log
中提取特定字符串
这是特定字符串后的版本
,该文件可以使用批处理文件在目录的子目录中找到

请帮助我从多个目录中的多个日志文件中提取此特定字符串
这是版本
(此目录具有相同的内容)

我有包含以下信息的日志文件(这只是
myFile.log
的一部分):

例如:

@echo off>newfile&setLocal启用延迟扩展
集合C=
设定=
对于/f“tokens=1*delims=[]”中的%%a('find/v/n“\\\”^nul&&如果未定义C集C=%%a
)
对于/f“tokens=1*delims=[]”中的%%a('find/v/n“\\\”^>C:\newfile.txt echo.!S!
)
如果%%a gtr!C!如果%%a lss!a!>>C:\newfile.txt echo.%%b
)
后藤:eof

你觉得太复杂了。获取正确的行,从前面移除零件(包括)
版本:
,并从其余部分获取第一个标记:

@echo off 
setlocal 
for /f "tokens=*" %%a in ('find "This is Version:" myfile.log') do set "version=%%a"
for /f %%a in ("%version:*Version: =%") do set "version=%%a"
echo "%version%"

我们需要看到您正在解析的日志文件的真实示例。Satcha,您认为您的问题中的信息比注释更好吗?请回答您的问题。抱歉,已修复。感谢您解释为什么将
FIND
命令配置为排除包含\
folder1\test\myFile.log
folder2\test\myFile.log
folder3\test\myFile.log
@echo off > newfile & setLocal enableDELAYedeXpansioN

set C=
set A=

for /f "tokens=1* delims=[]" %%a in ('find /v /n "\\\\\\" ^< C:\folder1\test\myFile.log') do (

echo.%%b|find "this is Version" > nul && if not defined C set C=%%a

)

for /f "tokens=1* delims=[]" %%a in ('find /v /n "\\\\\\" ^< C:\folder1\test\myFile.log') do (
if %%a equ !C! (
set S=%%b
set S=!S:this is Version=!
>> C:\newfile.txt echo.!S!
)
if %%a gtr !C! if %%a lss !A! >> C:\newfile.txt echo.%%b
)
goto :eof
@echo off 
setlocal 
for /f "tokens=*" %%a in ('find "This is Version:" myfile.log') do set "version=%%a"
for /f %%a in ("%version:*Version: =%") do set "version=%%a"
echo "%version%"