如何从
SysValidate#URL
中的单引号 '/api/sys/test'
读取属性名称(例如:File1.txt
)及其值,并在 File2.txt
中查找该属性名称和值。
文件1.txt
Wed 11/08/2023 - 13:47:58.42
BIP1138I: Applying overrides using runtime baroverrides...
BIP1140I: Overriding property SysValidate#URL with '/api/sys/test' in 'app_flow/META-INF/broker.xml' ...
BIP1140I: Overriding property SystValidate#Sendemail with 'TRUE' in 'app_flow/META-INF/broker.xml' ...
BIP1140I: Overriding property API_Analytics#username with 'testUser' in 'app_flow/META-INF/broker.xml' ...
BIP1140I: Overriding property API_Analytics#password with 'testPassword#' in 'app_flow/META-INF/broker.xml' ...
BIP1140I: Overriding property API_Analytics#realm with 'provider' in 'app_flow/META-INF/broker.xml' ...
一行中可以有多个单引号,但只需取第一个单引号即可。
文件2.txt
Wed 11/08/2023 - 13:47:59.43
BIP1052I: Reading Bar file using runtime mqsireadbar...
SysValidate#URL = /api/sys/test
SystValidate#Sendemail = TRUE
API_Analytics#username = analytics
API_Analytics#password = Trustmark2021#
API_Analytics#realm = provider/default-idp-2
我正在使用以下内容,但它只是选择值,而不是属性名称。
SETLOCAL ENABLEDELAYEDEXPANSION
FOR /f "usebackqdelims=" %%e IN ("C:\Users\k2\File1.txt") DO FOR %%y IN (%%e) DO (
SET "word=%%y"
IF "!word:~0,1!!word:~-1!"=="''" (
ECHO Processing %%y
FIND "!word:~1,-2!" "C:\Users\k2\File2.txt">nul
IF ERRORLEVEL 1 (>>"C:\Users\k2\Results.txt" ECHO %%y - Failed) ELSE (>>"C:\Users\k2\Results.txt" ECHO %%y - Success)
)
)
这就是我会做的方式:
@echo off
setlocal EnableDelayedExpansion
rem Load property values from File2.txt
for /F "tokens=1,3" %%a in ('findstr "=" File2.txt') do set "property[%%a]=%%b"
rem Process File1.txt
for /F "tokens=4,6" %%a in ('findstr "property" File1.txt') do (
echo Property %%a = %%b
if defined property[%%a] (
echo in File2 = !property[%%a]!
) else (
echo not defined in File2
)
)
输出:
Property SysValidate#URL = '/api/sys/test'
in File2 = /api/sys/test
Property SystValidate#Sendemail = 'TRUE'
in File2 = TRUE
Property API_Analytics#username = 'testUser'
in File2 = analytics
Property API_Analytics#password = 'testPassword#'
in File2 = Trustmark2021#
Property API_Analytics#realm = 'provider'
in File2 = provider/default-idp-2