Prev: Sound plays automatically
Next: Outlook Express
From: Pegasus [MVP] on 12 Jul 2010 18:19 "RichardOnRails" <RichardDummyMailbox58407(a)USComputerGurus.com> wrote in message news:554c88b1-04fc-42ce-8d8f-9908f917b77f(a)e6g2000vbp.googlegroups.com... > On Jul 11, 1:58 pm, "Pegasus [MVP]" <n...(a)microsoft.com> wrote: >> "RichardOnRails" <RichardDummyMailbox58...(a)USComputerGurus.com> wrote in >> messagenews:cd697713-6125-4a9b-8cce-944b99275fe5(a)w12g2000yqj.googlegroups.com... >> >> >> >> > 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 in the >> > 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.
From: RichardOnRails on 12 Jul 2010 20:21
On Jul 12, 6:19 pm, "Pegasus [MVP]" <n...(a)microsoft.com> wrote: > "RichardOnRails" <RichardDummyMailbox58...(a)USComputerGurus.com> wrote in > messagenews:554c88b1-04fc-42ce-8d8f-9908f917b77f(a)e6g2000vbp.googlegroups.com... > > > > > On Jul 11, 1:58 pm, "Pegasus [MVP]" <n...(a)microsoft.com> wrote: > >> "RichardOnRails" <RichardDummyMailbox58...(a)USComputerGurus.com> wrote in > >> messagenews:cd697713-6125-4a9b-8cce-944b99275fe5(a)w12g2000yqj.googlegroups.com... > > >> > 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 in the > >> > 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 |