From d66cc369d3ebc223a581fed0cd54479687de7799 Mon Sep 17 00:00:00 2001 From: Homes32 Date: Wed, 18 Jan 2023 18:53:38 -0600 Subject: [PATCH] performance optimizations -eliminate slowdowns cause by disk access (IniRead/IniWrite/TxtReplace) --- .../Media Creation/800-CreateISO.script | 44 +++++++++---------- Projects/PhoenixPE/Tweaks/OEMInfo.script | 23 +++++----- 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/Projects/PhoenixPE/Media Creation/800-CreateISO.script b/Projects/PhoenixPE/Media Creation/800-CreateISO.script index be30c3d..40e5327 100644 --- a/Projects/PhoenixPE/Media Creation/800-CreateISO.script +++ b/Projects/PhoenixPE/Media Creation/800-CreateISO.script @@ -35,20 +35,22 @@ Author=Homes32 Level=8 Selected=True Mandatory=False -Version=1.1.0.1 -Date=2022-08-01 +Version=1.2.0.0 +Date=2023-01-17 [Variables] %mkISOfs.exe%="%Tools%\x86\mkISOfs.exe" %oscdimg.exe%="%Tools%\%HostArch%\oscdimg\oscdimg.exe" +// Space delimited list of illegal file name characters +%IllegalChars%="\ / : * ? #$q < > |" + [Process] Echo,"Preparing to create bootable ISO file..." // Sanity Check If,Not,ExistFile,"%OutputDir%\sources\boot.wim",Halt,"ERROR: Boot.wim is missing from [%OutputDir%\Sources]. Please rebuild your project." - // Get ISO File Name txt Macros IniRead,"%ProjectDir%\script.project","Main","Version",%ProjectVer% StrFormat,Date,%Date%,"yyyy-mm-dd" @@ -56,28 +58,22 @@ StrFormat,Date,%Time%,"hhnn" StrFormat,Date,%TimeStamp%,"YYYYMMDDHHNNSS" // Set ISO File Name -IniWrite,"%ProjectTemp%\ISO.ini","FileName","FileName",%in_ISOFilename% -// Process Txt Macros -TxtReplace,"%ProjectTemp%\ISO.ini","{ProjectTitle}",%ProjectTitle% -TxtReplace,"%ProjectTemp%\ISO.ini","{ProjectVer}",%ProjectVer% -TxtReplace,"%ProjectTemp%\ISO.ini","{Date}",%Date% -TxtReplace,"%ProjectTemp%\ISO.ini","{Time}",%Time% -TxtReplace,"%ProjectTemp%\ISO.ini","{TimeStamp}",%TimeStamp% -TxtReplace,"%ProjectTemp%\ISO.ini","{SourceArch}",%SourceArch% -TxtReplace,"%ProjectTemp%\ISO.ini","{SourceLang}",%SourceLang% -// Strip illegal chars -TxtReplace,"%ProjectTemp%\ISO.ini","\","" -TxtReplace,"%ProjectTemp%\ISO.ini","/","" -TxtReplace,"%ProjectTemp%\ISO.ini",":","" -TxtReplace,"%ProjectTemp%\ISO.ini","*","" -TxtReplace,"%ProjectTemp%\ISO.ini","?","" -TxtReplace,"%ProjectTemp%\ISO.ini","#$q","" -TxtReplace,"%ProjectTemp%\ISO.ini","<","" -TxtReplace,"%ProjectTemp%\ISO.ini",">","" -TxtReplace,"%ProjectTemp%\ISO.ini","|","" -IniRead,"%ProjectTemp%\ISO.ini","FileName","FileName",%ISOFilename% +Set,%ISOFilename%,%in_ISOFilename% -// Fallback ISO Name +// Strip illegal chars +ForEach,%Char%,%IllegalChars%,Delim=#$s,StrFormat,Replace,%ISOFilename%,%Char%,"",%ISOFilename% +WriteInterface,Value,%ScriptFile%,Interface,in_ISOFilename,%ISOFilename% + +// Process Txt Macros +StrFormat,Replace,%ISOFilename%,"{ProjectTitle}",%ProjectTitle%,%ISOFilename% +StrFormat,Replace,%ISOFilename%,"{ProjectVer}",%ProjectVer%,%ISOFilename% +StrFormat,Replace,%ISOFilename%,"{Date}",%Date%,%ISOFilename% +StrFormat,Replace,%ISOFilename%,"{Time}",%Time%,%ISOFilename% +StrFormat,Replace,%ISOFilename%,"{TimeStamp}",%TimeStamp%,%ISOFilename% +StrFormat,Replace,%ISOFilename%,"{SourceArch}",%SourceArch%,%ISOFilename% +StrFormat,Replace,%ISOFilename%,"{SourceLang}",%SourceLang%,%ISOFilename% + +// Fallback ISO Name - just in case If,%ISOFilename%,Equal,"",Set,%ISOFilename%,%ProjectTitle% Set,%ISOFilename%,"%ISOFilename%.iso" diff --git a/Projects/PhoenixPE/Tweaks/OEMInfo.script b/Projects/PhoenixPE/Tweaks/OEMInfo.script index e653c17..87ffc62 100644 --- a/Projects/PhoenixPE/Tweaks/OEMInfo.script +++ b/Projects/PhoenixPE/Tweaks/OEMInfo.script @@ -35,8 +35,8 @@ Author=Homes32 Level=4 Selected=False Mandatory=False -Version=1.1.0.1 -Date=2022-08-01 +Version=1.1.1.0 +Date=2023-01-23 [Variables] @@ -51,16 +51,15 @@ StrFormat,Date,%Date%,"yyyy-mm-dd" StrFormat,Date,%Time%,"hh:nn" StrFormat,Date,%TimeStamp%,"YYYYMMDDHHNNSS" -// apply Model field txt macros -IniWrite,"%ProjectTemp%\OEMInfo.ini","Info","Model",%txt_Model% -TxtReplace,"%ProjectTemp%\OEMInfo.ini","{ProjectTitle}",%ProjectTitle% -TxtReplace,"%ProjectTemp%\OEMInfo.ini","{ProjectVer}",%ProjectVer% -TxtReplace,"%ProjectTemp%\OEMInfo.ini","{Username}",%UserName% -TxtReplace,"%ProjectTemp%\OEMInfo.ini","{ComputerName}",%ComputerName% -TxtReplace,"%ProjectTemp%\OEMInfo.ini","{Date}",%Date% -TxtReplace,"%ProjectTemp%\OEMInfo.ini","{Time}",%Time% -TxtReplace,"%ProjectTemp%\ISO.ini","{TimeStamp}",%TimeStamp% -IniRead,"%ProjectTemp%\OEMInfo.ini","Info","Model",%Model% +// Apply Model field txt macros +Set,%Model%,%txt_Model% +StrFormat,Replace,%Model%,"{ProjectTitle}",%ProjectTitle%,%Model% +StrFormat,Replace,%Model%,"{ProjectVer}",%ProjectVer%,%Model% +StrFormat,Replace,%Model%,"{Username}",%UserName%,%Model% +StrFormat,Replace,%Model%,"{ComputerName}",%ComputerName%,%Model% +StrFormat,Replace,%Model%,"{Date}",%Date%,%Model% +StrFormat,Replace,%Model%,"{Time}",%Time%,%Model% +StrFormat,Replace,%Model%,"{TimeStamp}",%TimeStamp%,%Model% RegLoadHives