Talk:RunBatchScript
The Notes section is incorrect as far as I can tell. RunBatchScript creates a temporary script object which knows nothing about the script from which the function was called. With the following batch script in a file:
set myVar to 1 messageBox "Press a button" "zero" "one" "two"
And the following script:
short button short myVar short test if (test == 1) ; set through console for testing runBatchScript "test.txt" set test to 2 endif if (test == 2) if (myVar) PrintC "MyVar != 0" endif set button to getButtonPressed if (button > -1) PrintC "Button pressed" set test to 0 endif endif
The variable remains zero and button presses are not recognized by the calling script.
- Ha, ha! I have tricked you, and now you must fix the page! Ok, a normal response - yeah, I was going off some memories of Jaga's work with it. It was one step better than the "Works exactly like the console function", as there are no notes for the console function either.
- Seems that it does make it's own object, then. I guess the last important question - does it run through the lines immediately like a result script, or not until later?
- --Haama 00:18, 25 November 2007 (EST)
- Yes, everything in the batch script runs before control passes back to the calling script. I'll update the article. Scruggs 09:22, 25 November 2007 (EST)
Robustness?
I played around with this function and noticed the following: 1) If the script-file doesn't exist, there aren't any crashes (but no warnings either) 2) If there is an error in the script-file, the file is run, but there is no crash Is this by design or have I just been lucky? If by design, I would suggest that these points are added to the description (under notes). Also, does this function correspond to the console command bat? --Zumbs 13:46, 14 June 2008 (EDT)
- When you use the console, Oblivion passes your input to its Script::CompileAndRun function which parses and executes the input. RunBatchScript does essentially the same thing, taking input one line at a time from the text file and passing each line to CompileAndRun(). If there is an error in one line of the batch file, we just continue on to the next line. An error in the script file has the same chance of crashing the game as a typing error in the console (i.e. very little).
- I don't see a "bat" function on the console command page, although there are some special console functions (like UseWorkbook) that aren't defined like normal script/console commands. RunBatchScript doesn't call that command but the behavior might be similar. What does that command do? Scruggs 00:06, 21 June 2008 (EDT)