basically I am just using this piece to replace a string in my var, but I can't get nested delay expansion to work correctly. Is this even possible?
set replace=!replace:!search!=!replaceVal!!
I know what going on when it is getting executed. It stops at after the first complete set which would be set replace=!replace:!
and then it attempts to execute the last part, but is there a way to escape them so it will properly get my outcome?
I think the most secure way is the following:
for /F "delims=" %%S in (^""!search!"^") do (
for /F "delims=" %%R in (^""!replaceVal!"^") do (
set "replace=!replace:%%~S=%%~R!"
)
)
So the only remaining restrictions are those that apply for the sub-string replacement syntax anyway.
An even simpler yet equally safe approach is this:
for /F "delims=" %%S in (^""!search!=!replaceVal!"^") do (
set "replace=!replace:%%~S!"
)
As you can see there is even no need to keep search and replace strings separated until the end.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With