<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-7817911242012129384</id><updated>2007-03-24T09:54:49.005-07:00</updated><title type='text'>Windows CMD &amp; Batch Scripting</title><link rel='alternate' type='text/html' href='http://www.calcaria.net/cmd_batch_scripting/index.html'></link><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7817911242012129384/posts/default'></link><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.calcaria.net/cmd_batch_scripting/atom.xml'></link><author><name>Paul Maddox</name></author><generator version='7.00' uri='http://www2.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><entry><id>tag:blogger.com,1999:blog-7817911242012129384.post-4623491491932879847</id><published>2007-03-24T09:52:00.000-07:00</published><updated>2007-03-24T09:54:49.122-07:00</updated><title type='text'>Pevent duplicate script execution with a lock / critical section</title><content type='html'>Recently I wanted to prevent a batch script from being executed multiple times concurrently. Functionality to prevent this is pretty easy. We can create a file as a lock and check for its existance. If the file exists we know the script is running. By deleting the file at the end of the script we allow other script instances to start.&lt;br /&gt;&lt;br /&gt;Here's some sample code:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#804040;"&gt;&lt;b&gt; off&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;SET&lt;/span&gt;&lt;span style="color:#008080;"&gt; LOCK&lt;/span&gt;&lt;span style="color:#804040;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt;.&lt;span style="color:#008080;"&gt;%0&lt;/span&gt;.lock&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#804040;"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#804040;"&gt;&lt;b&gt; exist&lt;/b&gt;&lt;/span&gt; &lt;span style="color:#008080;"&gt;%LOCK%&lt;/span&gt; (&lt;br /&gt;        &lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; Script is locked&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#008080;"&gt;pause&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#804040;"&gt;&lt;b&gt;goto&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#804040;"&gt;&lt;b&gt; :EOF&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; &lt;/span&gt;&amp;gt; &lt;span style="color:#008080;"&gt;%LOCK%&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;echo&lt;/span&gt;&lt;span style="color:#ff00ff;"&gt; In main program&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;pause&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#008080;"&gt;del&lt;/span&gt; &lt;span style="color:#008080;"&gt;%LOCK%&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;</content><link rel='alternate' type='text/html' href='http://www.calcaria.net/cmd_batch_scripting/2007/03/pevent-duplicate-script-execution-with.html'></link><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7817911242012129384/posts/default/4623491491932879847'></link><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7817911242012129384/posts/default/4623491491932879847'></link><author><name>Paul Maddox</name></author></entry></feed>