<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Developers, Developers, Developers! &#187; BAT</title>
	<atom:link href="http://maksim.sorokin.dk/it/tag/bat/feed/" rel="self" type="application/rss+xml" />
	<link>http://maksim.sorokin.dk/it</link>
	<description>Maksim Sorokin IT Blog</description>
	<lastBuildDate>Sun, 05 Feb 2012 19:37:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Discovering Version of Java in a BAT File</title>
		<link>http://maksim.sorokin.dk/it/2011/07/28/discovering-version-of-java-in-a-bat-file/</link>
		<comments>http://maksim.sorokin.dk/it/2011/07/28/discovering-version-of-java-in-a-bat-file/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 10:09:01 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[32bit-64bit]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[BAT]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=796</guid>
		<description><![CDATA[Sometimes in a BAT file we need to know what Java version are we running -- is it 32bit or 64bit. Here is a sample bat file, which depending on a Java version uses different native library directory: @echo off :: At this point you can place assumptions about Java version. It is still better [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes in a BAT file we need to know what Java version are we running -- is it 32bit or 64bit. Here is a sample bat file, which depending on a Java version uses different native library directory:</p>
<pre class="brush: plain; title: ;">
@echo off

:: At this point you can place assumptions about Java version. It is still better than nothing anyway. In this particular case, we rely on a knowledge of Java version during installation time (with IzPack). Or you can just specify default value here, for example by default assume that 32 version is being run
set JVM_VERSION=&quot;&quot;
if $SYSTEM_os_arch==x86 (
  set JVM_VERSION=32
) else (
  set JVM_VERSION=64
)
:: End of assumption section

:: Now trying to find out, what is current jvm version.

set TEMP_FILE=%TEMP%\javaCheck%RANDOM%%TIME:~9,5%.txt

java -version 2&gt;%TEMP_FILE%
FOR /F &quot;tokens=*&quot; %%i in (%TEMP_FILE%) do (
  echo %%i | find &quot;HotSpot&quot; &gt;nul
  if not errorlevel 1 (
    echo %%i | find &quot;64-Bit&quot; &gt;nul
    if not errorlevel 1 (
      set JVM_VERSION=64
    ) else (
      set JVM_VERSION=32
    )
  )
)

del %TEMP_FILE%

if %JVM_VERSION%==32 (
  set NATIVE_JARS=$INSTALL_PATH/lib/32
) else (
  set NATIVE_JARS=$INSTALL_PATH/lib/64
)

start &quot;App&quot; javaw -classpath .;&quot;%NATIVE_JARS%/*&quot; my.app.App
</pre>
<p>The trick is to redirect <code>java -version</code> to a temporary file. Then try to find a line with "HotSpot" substring. If that line contains "64-Bit", then it is 64bit version Java. Otherwise it is 32bit.</p>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2011/07/28/discovering-version-of-java-in-a-bat-file/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IzPack: Thoughts on Using Environmental Variables in Silent Installation</title>
		<link>http://maksim.sorokin.dk/it/2010/07/27/izpack-thoughts-on-using-environmental-variables-in-silent-installation/</link>
		<comments>http://maksim.sorokin.dk/it/2010/07/27/izpack-thoughts-on-using-environmental-variables-in-silent-installation/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 15:48:19 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BAT]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[IzPack]]></category>
		<category><![CDATA[shell scripts]]></category>
		<category><![CDATA[silent installation]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=302</guid>
		<description><![CDATA[IzPack is pretty powerful installation tool. However, silent installation (or the call it Automated Installers) lacks some flexibility. One of the things, which I lack, is a possibility to provide environmental variables in silent installation configuration files (auto-install.xml). Here I will provide some tricks which would help making your installer "eat" silent installation configuration files [...]]]></description>
			<content:encoded><![CDATA[<p>IzPack is pretty powerful installation tool. However, silent installation (or the call it <a href="http://izpack.org/documentation/advanced-features.html#automated-installers">Automated Installers</a>) lacks some flexibility. One of the things, which I lack, is a possibility to provide environmental variables in silent installation configuration files (<code>auto-install.xml</code>). Here I will provide some tricks which would help making your installer "eat" silent installation configuration files <em>with</em> environmental variables.</p>
<p>To start with, <span id="more-302"></span> I will notice that in <code>installpath</code> you can always use <a href="http://izpack.org/documentation/installation-files.html#environment-variables">IzPack way of interpreting environmental variables</a>. For example:</p>
<pre class="brush: xml; title: ;">
&lt;installpath&gt;${ENV[APPDATA]}\3Dfacto\installers\glassfish&lt;/installpath&gt;
</pre>
<p>Next, ordinary IzPack variables to be used in BAT files.<br />
In your silent configuration files you would like to see something like:</p>
<pre class="brush: xml; title: ;">
&lt;AutomatedInstallation langpack=&quot;eng&quot;&gt;
   ...
  &lt;com.izforge.izpack.panels.UserInputPanel id=&quot;UNKNOWN (com.izforge.izpack.panels.UserInputPanel)&quot;&gt;
    &lt;userInput&gt;
      &lt;entry key=&quot;myVar&quot; value=&quot;%HOMEDRIVE%\location\file.txt&quot;/&gt;
   ...
&lt;/AutomatedInstallation&gt;
</pre>
<p>Here are some ideas which may help you make it work.</p>
<p>Now, when you use <a href="http://izpack.org/documentation/panels.html#processpanel">ProcessPanel</a> to launch your bat file, you pass a environmental variable inside a variable. Once you realize it, it is easy to make small trick to make everything work. For example, if in silent installation configuration file (in example above), you provide environmental variable to <code>myVar</code> variable. And then you pass it to the bat file with <code>ProcessPanel</code> in <code>processPanelSpec.xml</code>:</p>
<pre class="brush: xml; title: ;">
&lt;processing&gt;
  &lt;job name=&quot;Install configuratorPortal&quot;&gt;
    &lt;executefile name=&quot;$INSTALL_PATH/script.bat&quot;&gt;
      &lt;env&gt;myVar=$myVar&lt;/env&gt;
  ...
&lt;/processing&gt;
</pre>
<p>When <code>ProcessPanel</code> launches that bat file, your <code>myVar</code> will be substituted once. But you need to get it substituted two times! What you may do is to simply add shell <code>call</code> command in front of the expression, where <code>myVar</code> is used. In this case, variable will be substituted twice.<br />
However, it will not work in some cases, for example:</p>
<pre class="brush: plain; title: ;">call echo hi&gt; %myVar%</pre>
<p>or</p>
<pre class="brush: plain; title: ;">call if exist %myVar% echo &quot;hi&quot;</pre>
<p>What you can do in this case is to use a wrapper. For instance, if you want to call <code>echo</code> command to substitute variable twice:</p>
<pre class="brush: plain; title: ;">call echo hi&gt; %myVar%</pre>
<p>Then create a helper <code>parameterDumper.bat</code>:</p>
<pre class="brush: plain; title: ;">
echo off

:: %1 -- what
:: %2 -- where

call echo %~1&amp;gt;&amp;gt; %~2
</pre>
<p>Include it into installation and simply call that instead:</p>
<pre class="brush: plain; title: ;">call &quot;%INSTALL_PATH%\parameterDumper.bat&quot; &quot;hi&quot; &quot;%myVar%&quot;</pre>
<p>Then two <code>call</code> commands will be executed and the parameter will be evaluated twice.</p>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2010/07/27/izpack-thoughts-on-using-environmental-variables-in-silent-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modularized Installers with IzPack</title>
		<link>http://maksim.sorokin.dk/it/2010/07/05/modularized-installers-with-izpack/</link>
		<comments>http://maksim.sorokin.dk/it/2010/07/05/modularized-installers-with-izpack/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 21:10:25 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BAT]]></category>
		<category><![CDATA[IzPack]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=272</guid>
		<description><![CDATA[link to dependency plugin One may want to modularize installer's components and support them separately. It is easy to do with IzPack too! In this example, we suppose, that installers are built with Maven. Ok, now we assume, that we have two other installers project1-installer and project2-installer. Then we create another project for "master" installer. [...]]]></description>
			<content:encoded><![CDATA[<p>link to dependency plugin</p>
<p>One may want to modularize installer's components and support them separately. It is easy to do with IzPack too!<br />
In this example, we suppose, that installers are built with Maven.</p>
<p>Ok, now we <span id="more-272"></span>assume, that we have two other installers <code>project1-installer</code> and <code>project2-installer</code>. Then we create another project for "master" installer. In "master" installer's <code>pom.xml</code> file we specify <code>project1-installer</code> and <code>project2-installer as a dependencies:</code></p>
<pre class="brush: xml; title: ;">
&lt;dependency&gt;
  &lt;groupId&gt;company&lt;/groupId&gt;
  &lt;artifactId&gt;project1-installer&lt;/artifactId&gt;
  &lt;version&gt;version&lt;/version&gt;
  &lt;classifier&gt;standard&lt;/classifier&gt;
&lt;/dependency&gt;

&lt;dependency&gt;
  &lt;groupId&gt;company&lt;/groupId&gt;
  &lt;artifactId&gt;project2-installer&lt;/artifactId&gt;
  &lt;version&gt;version&lt;/version&gt;
  &lt;classifier&gt;standard&lt;/classifier&gt;
&lt;/dependency&gt;
</pre>
<p>Then we use a dependency plugin to dump <code>project1-installer</code> and <code>project2-installer</code>. And then in <code>install.xml</code> in the "master" installer in the <code>pack</code> section we specify, that we want to include those dependencies in our "master" installation:</p>
<pre class="brush: xml; title: ;">
&lt;packs&gt;
  &lt;pack name=&quot;main&quot; required=&quot;yes&quot;&gt;
    &lt;description&gt;Master Installation&lt;/description&gt;

    &lt;file src=&quot;${dependencies.dir}/project1-installer-standard.jar&quot; targetdir=&quot;$INSTALL_PATH/install&quot; override=&quot;true&quot; /&gt;
    &lt;file src=&quot;${dependencies.dir}/project2-installer-standard.jar&quot; targetdir=&quot;$INSTALL_PATH/install&quot; override=&quot;true&quot; /&gt;
  &lt;/pack&gt;
&lt;/packs&gt;
</pre>
<p>All we left to do is just to call these <code>project1-installer</code> and <code>project2-installer</code> in order. So we create a <a href="http://izpack.org/documentation/panels.html#processpanel">ProcessPanel</a> and in configuration file of that panel we specify, that we want to run a bat file:</p>
<pre class="brush: xml; title: ;">
&lt;processing&gt;
  &lt;job name=&quot;Install&quot;&gt;
    &lt;executefile name=&quot;$INSTALL_PATH/install/dependenciesInstall.bat&quot; /&gt;
  &lt;/job&gt;
&lt;/processing&gt;
</pre>
<p>Where the <code>dependenciesInstall.bat</code> would be the following:</p>
<pre class="brush: plain; title: ;">
echo off

echo.
echo -------------------------------------------------------
echo Launching Project1 Installer
&quot;${INSTALL_PATH}\install\project1-installer-standard.jar

echo.
echo -------------------------------------------------------
echo Launching Project1 Installer
&quot;${INSTALL_PATH}\install\project2-installer-standard.jar

echo.
echo -------------------------------------------------------
echo Done
</pre>
<p>And of course we need to include that <code>dependenciesInstall.bat</code> into our installer by specifying in <code>pack</code> section of <code>install.xml</code>:</p>
<pre class="brush: xml; title: ;">
&lt;parsable targetfile=&quot;$INSTALL_PATH/install/dependenciesInstall.bat&quot; /&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2010/07/05/modularized-installers-with-izpack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backuping Files with BAT</title>
		<link>http://maksim.sorokin.dk/it/2010/07/02/backuping-files-with-bat/</link>
		<comments>http://maksim.sorokin.dk/it/2010/07/02/backuping-files-with-bat/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 07:33:00 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[BAT]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=262</guid>
		<description><![CDATA[When I need to backup a file in my bat script, I usually do like this: copy /Y fileToBackup fileToBackup.bak_%date%_%time:~0,2%%time:~3,2% Which gives a nice timestamp in the filename, for example: fileToBackup.bak_29-06-2010_1738]]></description>
			<content:encoded><![CDATA[<p>When I need to backup a file in my bat script, I usually do like this:</p>
<pre class="brush: plain; title: ;">
copy /Y fileToBackup fileToBackup.bak_%date%_%time:~0,2%%time:~3,2%
</pre>
<p>Which gives a nice timestamp in the filename, for example:</p>
<pre class="brush: plain; title: ;">fileToBackup.bak_29-06-2010_1738</pre>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2010/07/02/backuping-files-with-bat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Ways of Running Executables in Izpack</title>
		<link>http://maksim.sorokin.dk/it/2010/06/20/two-ways-of-running-executables-in-izpack/</link>
		<comments>http://maksim.sorokin.dk/it/2010/06/20/two-ways-of-running-executables-in-izpack/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 09:06:59 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BAT]]></category>
		<category><![CDATA[IzPack]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=250</guid>
		<description><![CDATA[There are two ways to run executable files in IzPack. The first one is to use ProcessPanel and another one is through &#60;executable&#62; IzPack element. ProcessPanel can be configured to run at specific point, for example right after the point when user specified some input fields. &#60;executable&#62; is run right after InstallPanel. Sometimes you want [...]]]></description>
			<content:encoded><![CDATA[<p>There are two ways to run executable files in IzPack. The first one is <span id="more-250"></span> to use <a href="http://izpack.org/documentation/panels.html#processpanel">ProcessPanel</a> and another one is through <a href="http://izpack.org/documentation/installation-files.html#executable-mark-file-executable-or-execute-it">&lt;executable&gt;</a> IzPack element.</p>
<p><code>ProcessPanel</code> can be configured to run at specific point, for example right after the point when user specified some input fields. <code>&lt;executable&gt;</code> is run right after <a href="http://izpack.org/documentation/panels.html#installpanel">InstallPanel</a>.</p>
<p>Sometimes you want to run an executable two times during the installation. For example, when user specified some data, you run one executable. After he specified another piece of data, you run another executable. Unfortunately, there is no easy way to do that using <code>ProcessPanel</code> or <code>&lt;executable&gt;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2010/06/20/two-ways-of-running-executables-in-izpack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation with IzPack &#8212; Launching BAT Files</title>
		<link>http://maksim.sorokin.dk/it/2010/06/14/installation-with-izpack-launching-bat-files/</link>
		<comments>http://maksim.sorokin.dk/it/2010/06/14/installation-with-izpack-launching-bat-files/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 10:42:31 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BAT]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[IzPack]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=237</guid>
		<description><![CDATA[Intuitively we know -- if we can run a bat file.. we can probably to everything. And yes, you can run bat files from IzPack too! I will assume, that you read my previous post about simple IzPack + Maven applications. In order to run a bat file, we will have to use a IzPack [...]]]></description>
			<content:encoded><![CDATA[<p>Intuitively we know -- if we can run a bat file.. we can probably to everything. And yes, you can run bat files from IzPack too!<br />
I will assume, that you read my <a href="http://maksim.sorokin.dk/it/2010/06/10/izpack-with-maven/">previous post</a> about simple IzPack + Maven applications. In order to run a bat file, we will have to use a <a href="http://izpack.org/documentation/panels.html#processpanel">IzPack ProcessPanel</a>.</p>
<p>In your <code>install.xml</code> you need to<span id="more-237"></span> add a <code>resources</code>, where you will specify a configuration of your bat file (where it exists and what parameters should be passed to it):</p>
<pre class="brush: xml; title: ;">
&lt;resources&gt;
  &lt;res id=&quot;ProcessPanel.Spec.xml&quot; src=&quot;processPanelSpec.xml&quot; /&gt;
&lt;/resources&gt;
</pre>
<p>Then, you will need to create a file named <code>processPanelSpec.xml</code>. If you run the example from my <a href="http://maksim.sorokin.dk/it/2010/06/10/izpack-with-maven/">previous post</a>, the location of this file should be <code>src/main/resources</code>. In this file you specify, what file needs to be run and what parameters should be passed to it:</p>
<pre class="brush: xml; title: ;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;processing&gt;

  &lt;job name=&quot;Say Hello&quot;&gt;
    &lt;executefile name=&quot;$INSTALL_PATH/sayHello.bat&quot;&gt;
      &lt;env&gt;name=Max&lt;/env&gt;
    &lt;/executefile&gt;
  &lt;/job&gt;

&lt;/processing&gt;
</pre>
<p>In two words, <code>$INSTALL_PATH/sayHello.bat</code> is location of our bat file -- we will cover this later. <code>arg</code> is passed argument.</p>
<p>Then in <code>src/main/resources</code> create a <code>sayHello.bat</code> file:</p>
<pre class="brush: plain; title: ;">echo Hello %name%</pre>
<p>And then in <code>install.xml</code> file in main pack (&lt;packs&gt;&lt;pack&gt;..) say, that you want to include that bat file:</p>
<pre class="brush: xml; title: ;">
  &lt;packs&gt;
    &lt;pack name=&quot;main&quot; required=&quot;yes&quot;&gt;
      ...

      &lt;file src=&quot;sayHello.bat&quot; targetdir=&quot;$INSTALL_PATH&quot; override=&quot;true&quot; /&gt;
    &lt;/pack&gt;
  &lt;/packs&gt;
</pre>
<p>And in <code>install.xml</code> in <code>panels</code> you need to specify three panels. The first is either <a href="http://izpack.org/documentation/panels.html#targetpanel">TargetPanel</a> or <a href="http://izpack.org/documentation/panels.html#defaulttargetpanel">DefaultTargetpanel</a> which would tell IzPack where it is possible to extract installation filees. Another one is <code>InstallPanel</code> which tells when to unpack the installation files. And the last one is <code>ProcessPanel</code> which specifies when a file needs to be processed:</p>
<pre class="brush: xml; title: ;">
&lt;panels&gt;
  &lt;panel classname=&quot;HelloPanel&quot; /&gt;
  &lt;panel classname=&quot;TargetPanel&quot; /&gt;
  &lt;panel classname=&quot;ProcessPanel&quot; /&gt;
  &lt;panel classname=&quot;SimpleFinishPanel&quot; /&gt;
&lt;/panels&gt;
</pre>
<p>And then you can run <code>mvn install</code>. You will find your installer in standard <code>target</code> folder. And you should be able to see a message "Hello Max".</p>
<p>Here is a complete <code>install.xml</code> which I used for this example:</p>
<pre class="brush: xml; title: ;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;installation version=&quot;1.0&quot;&gt;

  &lt;info&gt;
    &lt;appname&gt;test&lt;/appname&gt;
    &lt;appversion&gt;1&lt;/appversion&gt;
    &lt;uninstaller write=&quot;no&quot; /&gt;
    &lt;javaversion&gt;1.6&lt;/javaversion&gt;

    &lt;pack200 /&gt;
  &lt;/info&gt;

  &lt;guiprefs resizable=&quot;no&quot; width=&quot;480&quot; height=&quot;360&quot;&gt;
    &lt;laf name=&quot;looks&quot;&gt;
      &lt;param name=&quot;variant&quot; value=&quot;windows&quot; /&gt;
      &lt;os family=&quot;windows&quot; /&gt;
    &lt;/laf&gt;
  &lt;/guiprefs&gt;

  &lt;locale&gt;
    &lt;langpack iso3=&quot;eng&quot; /&gt;
  &lt;/locale&gt;

  &lt;resources&gt;
    &lt;res id=&quot;ProcessPanel.Spec.xml&quot; src=&quot;processPanelSpec.xml&quot; /&gt;
  &lt;/resources&gt;

  &lt;panels&gt;
    &lt;panel classname=&quot;HelloPanel&quot; /&gt;
    &lt;panel classname=&quot;TargetPanel&quot; /&gt;
    &lt;panel classname=&quot;InstallPanel&quot; /&gt;
    &lt;panel classname=&quot;ProcessPanel&quot; /&gt;
    &lt;panel classname=&quot;SimpleFinishPanel&quot; /&gt;
  &lt;/panels&gt;

  &lt;packs&gt;
    &lt;pack name=&quot;main&quot; required=&quot;yes&quot;&gt;
      &lt;description&gt;Test Installation&lt;/description&gt;

      &lt;file src=&quot;sayHello.bat&quot; targetdir=&quot;$INSTALL_PATH&quot; override=&quot;true&quot; /&gt;
    &lt;/pack&gt;
  &lt;/packs&gt;

&lt;/installation&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2010/06/14/installation-with-izpack-launching-bat-files/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Simple Variable Substitution in BAT Files</title>
		<link>http://maksim.sorokin.dk/it/2010/05/27/simple-variable-substitution-in-bat-files/</link>
		<comments>http://maksim.sorokin.dk/it/2010/05/27/simple-variable-substitution-in-bat-files/#comments</comments>
		<pubDate>Thu, 27 May 2010 08:02:45 +0000</pubDate>
		<dc:creator>Maksim Sorokin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[BAT]]></category>

		<guid isPermaLink="false">http://maksim.sorokin.dk/it/?p=207</guid>
		<description><![CDATA[From set command reference: &#62;&#62; Environment variable substitution has been enhanced as follows: &#62;&#62; %PATH:str1=str2% For example you can change the backslashes to slashes in the URL parameter when you pass it to the Java file: echo %resources.home:\=/%]]></description>
			<content:encoded><![CDATA[<p>From <code>set</code> command reference:<br />
&gt;&gt; Environment variable substitution has been enhanced as follows:<br />
&gt;&gt;    <code>%PATH:str1=str2%</code></p>
<p>For example you can change the backslashes to slashes in the URL parameter when you pass it to the Java file:</p>
<pre class="brush: plain; title: ;">echo %resources.home:\=/%</pre>
]]></content:encoded>
			<wfw:commentRss>http://maksim.sorokin.dk/it/2010/05/27/simple-variable-substitution-in-bat-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

