public final GhidraState runScriptPreserveMyState(String scriptName) throws Exception {
		updateStateFromVariables();
		GhidraState clonedState = new GhidraState(state);
		runScript(scriptName, clonedState);
		return clonedState;
	}
Runs a script by name (does not allow current state to change).
<p>
It attempts to locate the script in the directories
defined in <code>GhidraScriptUtil.getScriptDirectories()</code>.
<p>
The script being run uses the same {@link GhidraState} (e.g., script variables) as
this calling script.  However, any changes to the state by the script being run will NOT
be reflected in this calling script's state.

@param scriptName the name of the script to run
@return a GhidraState object containing the final state of the run script.
@throws IllegalArgumentException if the script does not exist
@throws Exception if any exceptions occur while running the script
@see #runScript(String)
@see #runScript(String, GhidraState)
Ghidra/Features/Base/src/main/java/ghidra/app/script/GhidraScript.java