1
@echo on

for /F "tokens=*" %%A in (temk.txt) do (set val=%%A
echo %val%
)

temk.txt content:

 <vault-option name="KEYSTORE_PASSWORD" value="MASK-2U8Xggca4VLP8Xx7nYzGE/"/>

I am not able to see the output of echo %val%. Please help me, not sure what I'm missing.

npocmaka
  • 55,367
  • 18
  • 148
  • 187
John_J
  • 53
  • 2
  • 9

1 Answers1

0

Here is an hybrid code batch + vbscript to extract the value :

@echo off
Set "InputFile=temk.txt"
Set "OutPutFile=OutputFile.txt"
Set "Tmpvbs=%temp%\Tmpvbs.vbs"
Call :Extract "%InputFile%" "%OutPutFile%"
Setlocal enabledelayedexpansion
for /f "delims=" %%a in ('Type "%OutPutFile%"') Do (
    Set "Val=%%a"
)
Echo Val = !Val! & pause>nul
Exit
::****************************************************
:Extract <InputData> <OutPutData>
(
echo Data = WScript.StdIn.ReadAll
echo Data = Extract(Data,"value=""(.*)"""^)
echo WScript.StdOut.WriteLine Data
echo Function Extract(Data,Pattern^)
echo    Dim oRE,oMatches,Match,Line
echo    set oRE = New RegExp
echo    oRE.IgnoreCase = True
echo    oRE.Global = True
echo    oRE.Pattern = Pattern
echo    set oMatches = oRE.Execute(Data^)
echo    If not isEmpty(oMatches^) then
echo        For Each Match in oMatches  
echo            Line = Line ^& Match.Submatches(0^)
echo        Next
echo        Extract = Line
echo    End if
echo End Function
)>"%Tmpvbs%"
cscript /nologo "%Tmpvbs%" < "%~1" > "%~2"
If Exist "%Tmpvbs%" Del "%Tmpvbs%"
exit /b
::****************************************************
Hackoo
  • 18,337
  • 3
  • 40
  • 70