Optimize JSONRead and XMLRead commands.

This commit is contained in:
Homes32
2024-01-05 18:30:44 -06:00
parent 8deb88e195
commit 1deabd9740
4 changed files with 31 additions and 33 deletions

View File

@@ -81,7 +81,6 @@ If,%cb_AutoRun01%,Equal,True,If,Not,%txt_AutoRun01%,Equal,"",Begin
AddAutoRun,%RunLevel%,%Mode%,"Starting ProcDump Monitor ##1...","%PEPrograms%\%ProgramFolder%\%ProgramExe%",%txt_AutoRun01%
End
If,%cb_AutoRun02%,Equal,True,If,Not,%txt_AutoRun02%,Equal,"",Begin
If,%cb_RunPreShell02%,Equal,True,Set,%RunLevel%,"PreShell"
Else,Set,%RunLevel%,"PostShell"

View File

@@ -1693,36 +1693,39 @@ System,EndLocal
// Syntax.........: JSONRead,<JSONFile>,<Path>
// Parameters.....: #1 JSONFile - Full path to the JSON filed to read.
// #2 Path - GJSON Path notation used to locate the value to read.
// #3 NOERR - Don't Halt on errors. (Use if you intend to handle errors yourself).
// Return values..: #r - Success - Returns the value of <Path>
// Failure - Returns ""
// Author.........: Homes32
// Remarks........: jj.exe Homepage: https://github.com/tidwall/jj
// Path Syntax Help: https://github.com/tidwall/gjson/blob/master/SYNTAX.md
//
// Notes: We need to add escaped double-quotes surrounding the command with ^" or the FOR loop gets confused
// and matches the quotes around "%Tools%\%HostArch%\jj.exe" incorrectly with the double-quotes in "%Path%".
// Related........: Depends on %Tools%\%HostArch%\jj.exe
// ===============================================================================================================================
[_PhoenixAPI_JSONRead]
System,SetLocal
GetParam,1,%JSONFile%
GetParam,2,%Path%
GetParam,3,%Arg3%
If,Not,ExistFile,%JSONFile%,Halt,"JSONRead Syntax Error: The file [%JSONFile%] does not exist."
If,%Path%,Equal,"",Halt,"JSONRead Syntax Error: You must specify an JSON Path."
FileDeleteEx,"%ProjectTemp%\PhoenixAPI-JSONRead.txt"
If,%Arg3%,Equal,"NOERR",Set,%NOERR%,"True"
FileDeleteEx,"%ProjectTemp%\PhoenixAPI-JSONRead.ini"
ShellExecute,Hide,"%Tools%\%HostArch%\jj.exe","-i #$q%JSONFile%#$q -o #$q%ProjectTemp%\PhoenixAPI-JSONRead.txt#$q #$q%Path%#$q"
If,Not,#r,Equal,0,Halt,"JSONRead ERROR: Failed to read [%JSONFile%]."
ShellExecute,Hide,"cmd.exe","/c for /f #$qtokens=*#$q %a in (PhoenixAPI-JSONRead.txt) do (echo Value=%a) > #$q%ProjectTemp%\PhoenixAPI-JSONRead.ini#$q",%ProjectTemp%
If,ExistFile,"%ProjectTemp%\PhoenixAPI-JSONRead.ini",Begin
// Value was found in JSON file
TXTAddLine,"%ProjectTemp%\PhoenixAPI-JSONRead.ini","[Read]",PREPEND
IniRead,"%ProjectTemp%\PhoenixAPI-JSONRead.ini","Read","Value",#r
ShellExecute,Hide,"cmd.exe","/c for /f #$qusebackq delims=#$q #$p? In (`^#$q#$q%Tools%\%HostArch%\jj.exe#$q -i #$q%JSONFile%#$q #$q%Path%#$q^#$q`) do (>#$q%ProjectTemp%\PhoenixAPI-JSONRead.ini#$q echo Value^=#$p?)"
If,#r,Equal,0,Begin
TXTAddLine,"%ProjectTemp%\PhoenixAPI-JSONRead.ini","[JSONRead]",PREPEND
IniRead,"%ProjectTemp%\PhoenixAPI-JSONRead.ini","JSONRead","Value",%Value%
Return,%Value%
End
Else,Begin
// Value was not found in JSON file
Return,""
If,%NOERR%,Equal,"True",Return,""
Else,Halt,"JSONRead ERROR: Failed to read [%JSONFile%]."
End
System,EndLocal
@@ -1843,7 +1846,10 @@ System,EndLocal
// Failure - Returns ""
// Author.........: Homes32
// Remarks........: The current implementation of this function only returns a single value.
// http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.pdf
// http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.pdf
//
// Notes: We need to add escaped double-quotes surrounding the command with ^" or the FOR loop gets confused
// and matches the quotes around "%Tools%\x86\xml.exe" incorrectly with the double-quotes in "%XMLFile%".
// Related........:
// ===============================================================================================================================
[_PhoenixAPI_XMLRead]
@@ -1857,24 +1863,17 @@ If,%Path%,Equal,"",Halt,"XMLRead Syntax Error: You must specify an XPath."
If,%Arg3%,Equal,"NOERR",Set,%NOERR%,"True"
FileDeleteEx,"%ProjectTemp%\PhoenixAPI-XMLRead.txt"
FileDeleteEx,"%ProjectTemp%\PhoenixAPI-XMLRead.ini"
ShellExecute,Hide,"cmd.exe","/c #$q#$q%Tools%\x86\xml.exe#$q select --text --template --value-of #$q%XPath%#$q #$q%XMLFile%#$q > #$q%ProjectTemp%\PhoenixAPI-XMLRead.txt#$q#$q"
If,Not,#r,Equal,0,Begin
If,%NOERR%,Equal,"True",Return,""
Else,Halt,"XMLRead ERROR: Failed to read [%XMLFile%]."
End
ShellExecute,Hide,"cmd.exe","/c for /f #$qtokens=*#$q %a in (PhoenixAPI-XMLRead.txt) do (echo Value=%a) > #$q%ProjectTemp%\PhoenixAPI-XMLRead.ini#$q",%ProjectTemp%
If,ExistFile,"%ProjectTemp%\PhoenixAPI-XMLRead.ini",Begin
// Value was found in XML file
TXTAddLine,"%ProjectTemp%\PhoenixAPI-XMLRead.ini","[Read]",PREPEND
IniRead,"%ProjectTemp%\PhoenixAPI-XMLRead.ini","Read","Value",#r
ShellExecute,Hide,"cmd.exe","/c For /f #$qusebackq delims=#$q #$p? In (`^#$q#$q%Tools%\x86\xml.exe#$q select --text --template --value-of #$q%XPath%#$q #$q%XMLFile%#$q^#$q`) Do (>#$q%ProjectTemp%\PhoenixAPI-XMLRead.ini#$q echo Value^=#$p?)"
If,#r,Equal,0,Begin
TXTAddLine,"%ProjectTemp%\PhoenixAPI-XMLRead.ini","[XMLRead]",PREPEND
IniRead,"%ProjectTemp%\PhoenixAPI-XMLRead.ini","XMLRead","Value",%Value%
Return,%Value%
End
Else,Begin
// Value was not found (we should never get here)
Return,""
If,%NOERR%,Equal,"True",Return,""
Else,Halt,"XMLRead ERROR: Failed to read [%XMLFile%]. XmlStarlet returned: [#r]"
End
System,EndLocal

View File

@@ -283,7 +283,7 @@ Advanced_Exit_16.png=705,1048
ReadMe_16.png=585,880
[config]
PhoenixPE.au3=36747,10440
PhoenixPE.au3=36759,10440
PhoenixPE.DisplaySettings.au3=23729,6868
HotKey.au3=27618,9108
PhoenixPE.SysInfoGUI.au3=11835,4468
@@ -1127,9 +1127,9 @@ lines=132
[EncodedFile-config-PhoenixPE.au3]
lines=2
0=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
1=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
2=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
0=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
1=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
2=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
[sample]
PhoenixPE-UserConfig.au3=4598,2392
PhoenixPE-UserConfig.ini=1764,1000

View File

@@ -956,7 +956,7 @@ Else,If,%cmb_Win10ExplorerSource%,Equal,"Use the explorer.exe application provid
Echo,"Copying user provided explorer.exe..."
// Log file version
FileVersion,%pb_Win10ExplorerEXE%,%HostExplorerVer%
FileCopy,%pb_Win10Explorer%,%TargetWindows%
FileCopy,%pb_Win10ExplorerEXE%,%TargetWindows%
End
Else,Halt,"ERROR: You must provide the full path to the explorer.exe application."
End
@@ -1115,7 +1115,7 @@ bvl_Win11Support="Win11 Support",1,12,151,275,403,94,8,Bold
lbl_Win11Explorer="This option will only be processed if building from a Win11 source.",1,1,160,290,380,16,8,Normal
cmb_Win10ExplorerSource="Use explorer.exe from the Win11 source image",1,4,160,310,311,21,"Use explorer.exe from the Win11 source image","Use explorer.exe from my Win10 host","Extract explorer.exe from a Win10 ISO/Source","Use the explorer.exe application provided below",_ToggleWin10ExplorerSource_,True
web_WhatIsThis="What is this?",1,10,480,312,67,18,https://github.com/PhoenixPE/PhoenixPE/wiki/FAQ#building-from-a-win11-source-with-explorer-shell-causes-blackscreen-on-boot
pb_Win10ExplorerEXE=,0,20,160,340,380,20,file,"Title=Select the explorer.exe to include in your build",Filter=explorer.exe|explorer.exe,"__Select the explorer.exe to include in your build"
pb_Win10ExplorerEXE=,1,20,160,340,380,20,file,"Title=Select the explorer.exe to include in your build",Filter=explorer.exe|explorer.exe,"__Select the explorer.exe to include in your build"
pb_Win10ExplorerWIM=,0,20,160,340,329,20,dir,"Title=Select the directory containing your extracted Win10 ISO image.",_CheckWin10ExplorerSource_,True,"__Select the directory containing your extracted Win10 ISO image."
num_WimImage=num_WimImage,0,2,500,340,40,20,1,1,99,1,"__Select the index of the image to extract"
lbl_DefaultFolderLayout="Default Folder Layout:",1,1,370,205,149,16,8,Normal