Re: Batch
- To: mathgroup at smc.vnet.net
- Subject: [mg60525] Re: Batch
- From: albert <awnl at arcor.de>
- Date: Mon, 19 Sep 2005 04:45:43 -0400 (EDT)
- References: <20050916044831.D106BBC36@mfep9.connect.com.au> <dggdur$ggq$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
> I will just copy a simple code below to describe what I am getting.
> The output in the first notebook is a = a; b = b ; ...
... and I guess that what you want is that a,b,c,... have their numerical
values when evaluating the other notebooks, right?
> This is the former notebook ;
> Do[
> {
> c = 3,
> nb2 = NotebookOpen["tt1.nb"],
> SelectionMove[nb2, All, Notebook],
> Print["k main ", k],
> SelectionEvaluate[nb2],
> Print["a = ", a],
> Print["b = ", b],
> Print["ac = ", ac],
> Print["bc = ", bc],
> },
> {k, 1, 1}]
I haven't analyzed what exactly goes wrong, but my first guess was that the
scoping of the Do-loop is the reason why k is not known to be 1 in the
other notebooks (and that this is presumably what you don't like).
And indeed, if you change the code so that k is a global variable, e.g.:
k = 1;
While[k <= 1,{
c = 3,
nb2 = NotebookOpen["tt1.nb"],
SelectionMove[nb2, All, Notebook],
Print["k main ", k],
SelectionEvaluate[nb2],
Print["a = ", a],
Print["b = ", b],
Print["ac = ", ac],
Print["bc = ", bc],
k++
}]
the code does something that I guess is about what you want to achieve...
hth
Albert
- Follow-Ups:
- WORD document
- From: Maria Cristina Dias Tavares <cristina@dsce.fee.unicamp.br>
- Re: Re: Batch
- From: Maria Cristina Dias Tavares <cristina@dsce.fee.unicamp.br>
- WORD document