On Jul 12, 6:19*pm, "Pegasus [MVP]" <n...@microsoft.com> wrote:
> "RichardOnRails" <RichardDummyMailbox58...@USComputerGurus.com> wrote in
> messagenews:554c88b1-04fc-42ce-8d8f-(E-Mail Removed)...
>
>
>
> > On Jul 11, 1:58 pm, "Pegasus [MVP]" <n...@microsoft.com> wrote:
> >> "RichardOnRails" <RichardDummyMailbox58...@USComputerGurus.com> wrote in
> >> messagenews:cd697713-6125-4a9b-8cce-(E-Mail Removed)...
>
> >> > I've got a 3-line bat file:
> >> > * *rake ready_for_the_day
> >> > * *@echo ------
> >> > * *rake COFFEE_CUPS=5 make_coffee
>
> >> > (BTW: Rake is Ruby's version of make: it invokes Ruby commands rather
> >> > the U*ix cmds. *The arguments identify a task within a Rakefile inthe
> >> > current directory, possibly with settings for environment variables)
>
> >> > The above ,bat file invokes the first command successfully, AFAIK, and
> >> > then quits
> >> > When I comment out the first cmd with a leading colon the echo works,
> >> > as does the 2nd cmd
>
> >> > Could a Rake.exe shut down the batch cmd that invoked it. *If so, *is
> >> > there any way I could insulate the batch command file from such a
> >> > shutdown attempt?
>
> >> > Thanks in Advance,
> >> > Richard
>
> >> Try this:
> >> @echo off
> >> start /b rake ready_for_the_day
> >> echo Label 1
> >> pause
> >> rake COFFEE_CUPS=5 make_coffee
>
> >> Note also that you should include full paths for all file names
> >> referenced
> >> in batch files if you want the batch file to be robust. Rake.exe has no
> >> path
> >> in your example.
>
> > Hi Pegasys,
>
> > Thanks for your response.
>
> >> Rake.exe has no path in your example.
> > True, but Rake's path is provided in my installation of Ruby: *K:/
> > _Utilities/ruby186-26_rc2/ruby/bin/ *(BTW, Ruby adjusts path
> > separators to the OS environment.)
>
> > I looked up the specs on cmd and start. *It looks like they were drawn
> > up by lawyers :-)
> > In your view, is there a reason to prefer "start /b" to "cmd /c"?
>
> > Thanks in Advance,
> > Richard
>
> "Start" and "cmd" are different things.
>
> "Start" creates a new thread, one that is independent from the current
> thread. You use it when you want to invoke two processes that are
> independent of each other..
>
> "Cmd" spawns another instance of the Command Processor. In other words, it
> causes the batch file to go off at a tangent. However, the batch file will
> not continue until the new command processor finishes its job.
>
> The complexity of switches that worries you is a delight for programmers
> because it gives them great flexibility.
Excellent explanation. I'll think about this if I decide to resume
this batch-file approach.
I just started exploring a perhaps more appropriate way to executing
my commands successively: Using Rake, which a a Ruby version of the
venerable Un*x make utility. But that's in suspense while I work on a
more pressing problem.
But thanks for illuminating this issue for me.
Best wishes,
Richard
|