批量提取字符串之间的内容行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_44390640/article/details/100105606

1、提取特定字符串之间行内容
@echo off & setlocal enabledelayedexpansion
set str1=“enbip”
set str2=“p”
set str3=“value”
echo %str1%,%str2%,%str3%>a.csv
for /f “delims=” %%i in (‘dir /b *.log’) do (
for /f “usebackq delims=” %%b in ("%%~i") do (
set “s=%%b”
if not “!s:OptionalFeatureLicenseId=!” == “!s!” set “flag=1”
if not “!s:userLabel=!” == “!s!” (set flag=) else if defined flag for /f “tokens=1,2 delims= " %%o in (”%%!s!") do echo %%i,%%o,%%p>>a.csv
) )
pause

2、提取特定字符串之间行内容,并行转列
@echo off
setlocal EnableDelayedExpansion
if exist A.csv del A.csv
if exist A1.csv del A1.csv
set str1=“OptionalFeatureLicenseId”
set str2=“featureState”
set str3=“keyId”
set str4=“licenseState”
set str5=“serviceState”
set str6=“ENBIP”
ECHO %str1%,%str2%,%str3%,%str4%,%str5%,%str6%>>A.CSV

for /f “delims=” %%i in (‘dir /b *.log’) do (
for /f “usebackq delims=” %%b in ("%%~i") do (
set “s=%%b”
if not “!s:OptionalFeatureLicenseId=!” == “!s!” set “flag=1”
if not “!s:userLabel=!” == “!s!” (set flag=) else if defined flag for /f “tokens=1-2 delims= " %%o in (”%%!s!") do (set /p “n=%%p,” > A.CSV ) :::多行并为一行

)

set /p “n=%%i”>A.CSV
echo.>>a.csv
)

findstr /b /v [0-9] A.CSV >>A1.CSV ::::将更新A1.CSV表
PAUSE

猜你喜欢

转载自blog.csdn.net/qq_44390640/article/details/100105606