<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2337233707531601865</id><updated>2012-02-28T16:54:17.467+01:00</updated><category term='announcement'/><category term='batch_tip'/><category term='command_removed'/><category term='release'/><title type='text'>GTweak News</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-9203248533797418923</id><published>2012-02-26T20:26:00.000+01:00</published><updated>2012-02-26T20:26:08.582+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Ease of implementation versus performance</title><content type='html'>I finished doing general code cleanup in GTweak and went back to coding registry backup management code. As of yet, I finished backup information querying code.&lt;br /&gt;&lt;br /&gt;Now, back to the merits. It took me few minutes to get it working. This is the older one (DeleteBackup references are TODOs):&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;@echo off&lt;br /&gt;echo.&lt;br /&gt;echo  1 Query backup info&lt;br /&gt;echo  2 Remove backup&lt;br /&gt;:loop&lt;br /&gt;echo.&lt;br /&gt;set ch=&amp;amp;set/p ch=&amp;Atilde;&amp;ordm;  &lt;br /&gt;if &amp;quot;%ch%&amp;quot;==&amp;quot;1&amp;quot; call:QueryBackupInfo&lt;br /&gt;if &amp;quot;%ch%&amp;quot;==&amp;quot;2&amp;quot; call:DeleteBackup&lt;br /&gt;goto loop&lt;br /&gt;:QueryBackupInfo&lt;br /&gt;for /f %%A in ('dir/b %windir%\grestore*.cmd') do (&lt;br /&gt; call:MakeSemicolonSeparatedVariable %%A scriptlist&lt;br /&gt;)&lt;br /&gt;for %%A in (%scriptlist%) do (&lt;br /&gt; call:GetBackupInfo %%A&lt;br /&gt;    call:PrintBackupInfo %%A&lt;br /&gt;)&lt;br /&gt;exit/b0&lt;br /&gt;set _&amp;gt;&amp;gt;getbkinfo.var&lt;br /&gt;pause&lt;br /&gt;goto:eof&lt;br /&gt;:MakeSemicolonSeparatedVariable&lt;br /&gt;set var=%% %2 %%&lt;br /&gt;set var=%var: =%&lt;br /&gt;if defined %2 (&lt;br /&gt; call set %2=%var%;%1&lt;br /&gt; ) else (&lt;br /&gt; set %2=%1&lt;br /&gt;)&lt;br /&gt;set var=&lt;br /&gt;exit/b0&lt;br /&gt;:GetBackupInfo&lt;br /&gt;for /f &amp;quot;tokens=6&amp;quot; %%B in ('type &amp;quot;%windir%\%1&amp;quot;^|find &amp;quot;This is auto-generated GTweak&amp;quot;') do (&lt;br /&gt; set gver=%%B&lt;br /&gt;)&lt;br /&gt;for /f &amp;quot;tokens=3*&amp;quot; %%B in ('type &amp;quot;%windir%\%1&amp;quot;^|find &amp;quot;Generated:&amp;quot;') do (&lt;br /&gt; set gdatecreated=%%B %%C&lt;br /&gt;)&lt;br /&gt;for /f &amp;quot;tokens=3 delims=\)&amp;quot; %%B in ('type &amp;quot;%windir%\%1&amp;quot;^|find &amp;quot;for %%%%A in (%%drive%%:&amp;quot;') do (&lt;br /&gt; call:CheckBackupFile %1 %%B&lt;br /&gt;)&lt;br /&gt;for /f &amp;quot;tokens=*&amp;quot; %%G in ('set %bid%') do (&lt;br /&gt; if &amp;quot;%%G&amp;quot; NEQ &amp;quot;&amp;quot; set/a BackedUpFilesCount+=1&lt;br /&gt;)&lt;br /&gt;for /f &amp;quot;tokens=4 delims=.=&amp;quot; %%G in ('set %bid%') do (&lt;br /&gt; if &amp;quot;%%G&amp;quot;==&amp;quot;1&amp;quot; (&lt;br /&gt;  set/a _%bid%.SUM_OF_VALID_FILESIZE_MATCHES+=1&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;for /f &amp;quot;tokens=3 delims=.=&amp;quot; %%A in ('set _%bid%.SUM_OF_VALID_FILESIZE_MATCHES') do (&lt;br /&gt; if &amp;quot;%%A&amp;quot;==&amp;quot;%BackedUpFilesCount%&amp;quot; (&lt;br /&gt;  set _%bid%.BACKUP_VALID=1&lt;br /&gt; ) else (&lt;br /&gt;  set _%bid%.BACKUP_VALID=0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;for /f &amp;quot;tokens=2 delims=.&amp;quot; %%G in ('set %bid%') do (&lt;br /&gt; set %bid%.%%G.IsValid=&lt;br /&gt;)&lt;br /&gt;for %%A in ( _%bid%.SUM_OF_VALID_FILESIZE_MATCHES BackedUpFilesCount file SizeGotFromScript SizeNow ) do set %%A=&lt;br /&gt;exit/b0&lt;br /&gt;:PrintBackupInfo&lt;br /&gt;echo.&lt;br /&gt;echo  Backup Id: %bid%&lt;br /&gt;echo.&lt;br /&gt;echo  Restoration script path: %windir%\%1&lt;br /&gt;echo  Program version: %gver%&lt;br /&gt;echo  Possible date created: %gdatecreated%&lt;br /&gt;for /f &amp;quot;tokens=3 delims=.=&amp;quot; %%A in ('set _%bid%.BACKUP_VALID') do (&lt;br /&gt; if &amp;quot;%%A&amp;quot;==&amp;quot;1&amp;quot; (&lt;br /&gt;  echo  Backup valid ^(supposedly^): yes&lt;br /&gt; )&lt;br /&gt; if &amp;quot;%%A&amp;quot;==&amp;quot;0&amp;quot; (&lt;br /&gt;  echo  Backup valid ^(supposedly^): no&lt;br /&gt; )&lt;br /&gt; if &amp;quot;%%A&amp;quot; NEQ &amp;quot;1&amp;quot; (&lt;br /&gt;  if &amp;quot;%%A&amp;quot; NEQ &amp;quot;0&amp;quot; (&lt;br /&gt;   echo  EXCEPTION OCCURED: [%%A]&lt;br /&gt;  )&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;echo  /////////////////////////////////////////////////////////////////////////&lt;br /&gt;set gver=&amp;amp;set gdatecreated=&amp;amp;set bid=&lt;br /&gt;exit/b0&lt;br /&gt;:CheckBackupFile&lt;br /&gt;for /f &amp;quot;tokens=1,3 delims=_&amp;quot; %%C in ('echo %2') do (&lt;br /&gt; set bid=%%C&lt;br /&gt; set file=%%D&lt;br /&gt;)&lt;br /&gt;for %%C in (%windir%\%2) do (&lt;br /&gt; for /f &amp;quot;tokens=8&amp;quot; %%D in ('type &amp;quot;%windir%\%1&amp;quot;^|find &amp;quot;%2)&amp;quot;') do (&lt;br /&gt;  call:CompareSizes &amp;quot;%%~zC&amp;quot; %%D&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;exit/b0&lt;br /&gt;:CompareSizes&lt;br /&gt;set SizeNow=%1&lt;br /&gt;set SizeGotFromScript=%3&lt;br /&gt;if &amp;quot;%SizeNow%&amp;quot;==&amp;quot;%SizeGotFromScript%&amp;quot; (&lt;br /&gt; set %bid%.%file%.IsValid=1&lt;br /&gt; ) else (&lt;br /&gt; set %bid%.%file%.IsValid=0&lt;br /&gt;)&lt;br /&gt;exit/b0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I decided to cease nesting &lt;code&gt;FIND&lt;/code&gt; and &lt;code&gt;TYPE&lt;/code&gt; commands in &lt;code&gt;FOR&lt;/code&gt; loops. It was a bit more time-consuming to get it working, but it paid off.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;@echo off&lt;br /&gt;echo.&lt;br /&gt;echo  1 Query backup info&lt;br /&gt;echo  2 Remove backup&lt;br /&gt;:loop&lt;br /&gt;echo.&lt;br /&gt;set ch=&amp;amp;set/p ch=&amp;Atilde;&amp;ordm;  &lt;br /&gt;if &amp;quot;%ch%&amp;quot;==&amp;quot;1&amp;quot; call:QueryBackupInfo&lt;br /&gt;if &amp;quot;%ch%&amp;quot;==&amp;quot;2&amp;quot; call:DeleteBackup&lt;br /&gt;goto loop&lt;br /&gt;:QueryBackupInfo&lt;br /&gt;for /f %%A in ('dir/b %windir%\grestore*.cmd') do (&lt;br /&gt; call:MakeSemicolonSeparatedVariable %%A scriptlist&lt;br /&gt;)&lt;br /&gt;for %%A in (%scriptlist%) do (&lt;br /&gt; call:GetBackupInfo %%A&lt;br /&gt;    call:PrintBackupInfo %%A&lt;br /&gt;)&lt;br /&gt;exit/b0&lt;br /&gt;set _&amp;gt;&amp;gt;getbkinfo.var&lt;br /&gt;pause&lt;br /&gt;goto:eof&lt;br /&gt;:MakeSemicolonSeparatedVariable&lt;br /&gt;set var=%% %2 %%&lt;br /&gt;set var=%var: =%&lt;br /&gt;if defined %2 (&lt;br /&gt; call set %2=%var%;%1&lt;br /&gt; ) else (&lt;br /&gt; set %2=%1&lt;br /&gt;)&lt;br /&gt;set var=&lt;br /&gt;exit/b0&lt;br /&gt;:GetBackupInfo&lt;br /&gt;call:RetrieveVersion %1&lt;br /&gt;call:RetrieveCreationDate %1&lt;br /&gt;for /f &amp;quot;tokens=1-13 delims=\() &amp;quot; %%B in (%windir%\%1) do (if &amp;quot;%%B %%D %%F&amp;quot;==&amp;quot;for in Windows&amp;quot; (call:CompareSizes %%G %%K))&lt;br /&gt;for /f &amp;quot;tokens=*&amp;quot; %%G in ('set %bid%') do (if &amp;quot;%%G&amp;quot; NEQ &amp;quot;&amp;quot; set/a BackedUpFilesCount+=1)&lt;br /&gt;for /f &amp;quot;tokens=4 delims=.=&amp;quot; %%G in ('set %bid%') do (if &amp;quot;%%G&amp;quot;==&amp;quot;1&amp;quot; (set/a _%bid%.SUM_OF_VALID_FILESIZE_MATCHES+=1))&lt;br /&gt;for /f &amp;quot;tokens=3 delims=.=&amp;quot; %%A in ('set _%bid%.SUM_OF_VALID_FILESIZE_MATCHES') do (if &amp;quot;%%A&amp;quot;==&amp;quot;%BackedUpFilesCount%&amp;quot; (set _%bid%.BACKUP_VALID=1) else (set _%bid%.BACKUP_VALID=0))&lt;br /&gt;for /f &amp;quot;tokens=2 delims=.&amp;quot; %%G in ('set %bid%') do (set %bid%.%%G.IsValid=)&lt;br /&gt;for %%A in ( _%bid%.SUM_OF_VALID_FILESIZE_MATCHES BackedUpFilesCount hive ) do (set %%A=)&lt;br /&gt;exit/b0&lt;br /&gt;:PrintBackupInfo&lt;br /&gt;echo.&lt;br /&gt;echo  Backup Id: %bid%&lt;br /&gt;echo.&lt;br /&gt;echo  Restoration script path: %windir%\%1&lt;br /&gt;echo  Program version: %gver%&lt;br /&gt;echo  Possible date created: %gdatecreated%&lt;br /&gt;for /f &amp;quot;tokens=3 delims=.=&amp;quot; %%A in ('set _%bid%.BACKUP_VALID') do (&lt;br /&gt; if &amp;quot;%%A&amp;quot;==&amp;quot;1&amp;quot; (echo  Backup valid ^(supposedly^): yes)&lt;br /&gt; if &amp;quot;%%A&amp;quot;==&amp;quot;0&amp;quot; (echo  Backup valid ^(supposedly^): no)&lt;br /&gt; if &amp;quot;%%A&amp;quot; NEQ &amp;quot;1&amp;quot; (if &amp;quot;%%A&amp;quot; NEQ &amp;quot;0&amp;quot; (echo  EXCEPTION OCCURED: [%%A]))&lt;br /&gt;)&lt;br /&gt;echo  /////////////////////////////////////////////////////////////////////////&lt;br /&gt;set gver=&amp;amp;set gdatecreated=&amp;amp;set bid=&lt;br /&gt;exit/b0&lt;br /&gt;:CompareSizes&lt;br /&gt;for /f &amp;quot;tokens=1,3 delims=_&amp;quot; %%A in (&amp;quot;%1&amp;quot;) do (set bid=%%A&amp;amp;set hive=%%B)&lt;br /&gt;set CommitedSize=%3&lt;br /&gt;set CommitedSize=%CommitedSize:&amp;quot;=%&lt;br /&gt;for %%A in (%windir%\%1) do (if &amp;quot;%%~zA&amp;quot;==&amp;quot;%CommitedSize%&amp;quot; (set %bid%.%hive%.IsValid=1) else (set %bid%.%hive%.IsValid=0))&lt;br /&gt;set CommitedSize=&lt;br /&gt;set hive=&lt;br /&gt;exit/b0&lt;br /&gt;:RetrieveVersion&lt;br /&gt;for /f &amp;quot;tokens=1-5,6&amp;quot; %%B in (%windir%\%1) do (if &amp;quot;%%B %%C %%D %%E %%F&amp;quot;==&amp;quot;rem This is auto-generated GTweak&amp;quot; (set gver=%%G&amp;amp;exit/b0))&lt;br /&gt;set gver=UNKNOWN&lt;br /&gt;exit/b0&lt;br /&gt;:RetrieveCreationDate&lt;br /&gt;for /f &amp;quot;tokens=1-2,*&amp;quot; %%B in (%windir%\%1) do (if &amp;quot;%%B %%C&amp;quot;==&amp;quot;rem Generated:&amp;quot; (set gdatecreated=%%D&amp;amp;exit/b0))&lt;br /&gt;set gdatecreated=UNKNOWN&lt;br /&gt;exit/b0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Results? Previous (old) version needed 57 seconds to verify 140 registry backups, newer - only 13 seconds. A bit more work and 4x faster script an award. Give it a try, but it is reasonable only, when you have at least 100 backups, then the effect is truly noticeable. Newer script relies on internals of Command Prompt, not even uses &lt;code&gt;TYPE&lt;/code&gt; command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-9203248533797418923?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/9203248533797418923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/ease-of-implementation-versus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/9203248533797418923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/9203248533797418923'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/ease-of-implementation-versus.html' title='Ease of implementation versus performance'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-5222712808573165380</id><published>2012-02-26T19:40:00.000+01:00</published><updated>2012-02-26T19:40:26.182+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Quick tip on variable nomenclature...</title><content type='html'>You can not perform arithmetic operations on variables that begin with a numeral. Just preceed them with an underline character, for example.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-5222712808573165380?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/5222712808573165380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/quick-tip-on-variable-nomenclature.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/5222712808573165380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/5222712808573165380'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/quick-tip-on-variable-nomenclature.html' title='Quick tip on variable nomenclature...'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-7277211920956501016</id><published>2012-02-26T16:53:00.005+01:00</published><updated>2012-02-26T17:02:42.733+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Function: TruncateTrailingSpaces</title><content type='html'>Receives one parameter - a name of the variable.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:TruncateTrailingSpaces&lt;br /&gt;set var=[%% %1:~-1 %%]&lt;br /&gt;set var=%var: =%&lt;br /&gt;call set var=%var%&lt;br /&gt;if not &amp;quot;%var%&amp;quot;==&amp;quot;[ ]&amp;quot; (set var=&amp;amp;set var1=&amp;amp;exit/b0) else (call:TruncateTrailingSpaces_2 %1&amp;amp;goto TruncateTrailingSpaces)&lt;br /&gt;:TruncateTrailingSpaces_2&lt;br /&gt;set var1=%% %1:~0,-1 %%&lt;br /&gt;set var1=%var1: =%&lt;br /&gt;call set %1=%var1%&lt;br /&gt;exit/b0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You may need to include this between &lt;code&gt;SETLOCAL&lt;/code&gt; and &lt;code&gt;ENDLOCAL&lt;/code&gt; commands, if you use variables &lt;code&gt;var&lt;/code&gt; and &lt;code&gt;var1&lt;/code&gt; globally:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:TruncateTrailingSpaces&lt;br /&gt;setlocal&lt;br /&gt;set var=[%% %1:~-1 %%]&lt;br /&gt;set var=%var: =%&lt;br /&gt;call set var=%var%&lt;br /&gt;if not &amp;quot;%var%&amp;quot;==&amp;quot;[ ]&amp;quot; (endlocal&amp;amp;set %1=%var%&amp;amp;exit/b0) else (call:TruncateTrailingSpaces_2 %1&amp;amp;goto TruncateTrailingSpaces)&lt;br /&gt;:TruncateTrailingSpaces_2&lt;br /&gt;set var1=%% %1:~0,-1 %%&lt;br /&gt;set var1=%var1: =%&lt;br /&gt;call set %1=%var1%&lt;br /&gt;exit/b0&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-7277211920956501016?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/7277211920956501016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/function-truncatetrailingspaces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/7277211920956501016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/7277211920956501016'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/function-truncatetrailingspaces.html' title='Function: TruncateTrailingSpaces'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-2836950039624443557</id><published>2012-02-24T23:01:00.000+01:00</published><updated>2012-02-24T23:01:54.176+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>What will happen if we place more than one label of the same name?</title><content type='html'>Command Prompt will get the one which is nearest to the beginning of the batch file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-2836950039624443557?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/2836950039624443557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/what-will-happen-if-we-place-more-than.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2836950039624443557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2836950039624443557'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/what-will-happen-if-we-place-more-than.html' title='What will happen if we place more than one label of the same name?'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-2892856973105210546</id><published>2012-02-24T22:56:00.000+01:00</published><updated>2012-02-24T22:56:56.763+01:00</updated><title type='text'>Embarrassing bug in 1.56</title><content type='html'>If you are about creating a registry backup and wish to print instructions, restoration script will work strangely. It is due to that its restoration command sequence will be doubled. It will not harm anything, but restoration commands will be executed twice, and this will result in that true previous registry in &lt;code&gt;!old_registry&lt;/code&gt; will be overwritten by backed up files. This will be fixed in next version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-2892856973105210546?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/2892856973105210546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/embarrassing-bug-in-156.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2892856973105210546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2892856973105210546'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/embarrassing-bug-in-156.html' title='Embarrassing bug in 1.56'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-6149978270366410281</id><published>2012-02-19T21:32:00.005+01:00</published><updated>2012-02-25T18:20:26.134+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command_removed'/><title type='text'>Commands that will be unavailable since 1.60</title><content type='html'>&lt;code&gt;DESKTOP_VERIFY&lt;/code&gt;,  &lt;code&gt;DESKTOP_ENABLE&lt;/code&gt;,  &lt;code&gt;DESKTOP_DISABLE&lt;/code&gt;&lt;br /&gt;They have no significant purpose, and their result can be achieved using &lt;code&gt;PolicyCU&lt;/code&gt;/&lt;code&gt;PolicyLM&lt;/code&gt; commands:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:DESKTOP_DISABLE&lt;br /&gt;PolicyCU Explorer NoDesktop 0x1&lt;br /&gt;PolicyLM Explorer NoDesktop 0x1&lt;br /&gt;&lt;br /&gt;:DESKTOP_ENABLE&lt;br /&gt;PolicyCU Explorer NoDesktop 0x0&lt;br /&gt;PolicyLM Explorer NoDesktop 0x0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;code&gt;DESKTOP_RESTORE&lt;/code&gt; will be created instead.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;PREVIEW_ENABLE&lt;/code&gt;,  &lt;code&gt;PREVIEW_DISABLE&lt;/code&gt; &lt;br /&gt;These commands will also be removed, since they seem to work on XP only.&lt;br /&gt;For those who want to know what these commands were doing:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:PREVIEW_ENABLE&lt;br /&gt;regsvr32 /s "%systemroot%\system32\shimgvw.dll"&lt;br /&gt;:PREVIEW_DISABLE&lt;br /&gt;regsvr32 /u /s "%systemroot%\system32\shimgvw.dll"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;code&gt;CPL_ENABLE&lt;/code&gt;,  &lt;code&gt;CPL_DISABLE&lt;/code&gt;&lt;br /&gt;Their presence necessity is doubtful. Their result can be achieved thus:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:CPLD&lt;br /&gt;PolicyCU Explorer NoControlPanel 0x1&lt;br /&gt;:CPLE&lt;br /&gt;PolicyCU Explorer NoControlPanel 0x0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;code&gt;DPE&lt;/code&gt;,  &lt;code&gt;DPD&lt;/code&gt;&lt;br /&gt;Their presence necessity is doubtful, too. Their result can be achieved thus:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:DPD&lt;br /&gt;PolicyCU Explorer NoDeletePrinter 0x1&lt;br /&gt;:DPE&lt;br /&gt;PolicyCU Explorer NoDeletePrinter 0x0&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-6149978270366410281?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/6149978270366410281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/commands-that-will-be-unavailable-since.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/6149978270366410281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/6149978270366410281'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/commands-that-will-be-unavailable-since.html' title='Commands that will be unavailable since 1.60'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-1280625378703723314</id><published>2012-02-18T12:14:00.001+01:00</published><updated>2012-02-18T12:42:53.045+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcement'/><title type='text'>Wizard Mode to be reorganised</title><content type='html'>Less common tweaks will not be available from the Wizard Mode, their usage will require the user to switch to the advanced mode. Wizard Mode will include only most wanted tweaks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-1280625378703723314?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/1280625378703723314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/wizard-mode-to-be-reorganised.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1280625378703723314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1280625378703723314'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/wizard-mode-to-be-reorganised.html' title='Wizard Mode to be reorganised'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-1344733826325866322</id><published>2012-02-16T18:45:00.000+01:00</published><updated>2012-02-16T18:45:48.202+01:00</updated><title type='text'>Did you screw up Command Prompt's window settings?</title><content type='html'>Have you accidentally changed font settings or just want true CMD settings reset?&lt;br /&gt;Just remove &lt;code&gt;HKCU\Console&lt;/code&gt; registry key, but make a backup of it in case something goes wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-1344733826325866322?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/1344733826325866322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/did-you-screw-up-command-prompts-window.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1344733826325866322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1344733826325866322'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/did-you-screw-up-command-prompts-window.html' title='Did you screw up Command Prompt&apos;s window settings?'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-1680778147118188047</id><published>2012-02-15T21:14:00.000+01:00</published><updated>2012-02-15T21:14:20.537+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Loops are wonderful</title><content type='html'>This in GTweak:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;if "%mch%"=="A:" (&lt;br /&gt; if not "%IsAlreadyA%"=="1" (&lt;br /&gt;  set/a final+=1&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyA=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="B:" (&lt;br /&gt; if not "%IsAlreadyB%"=="1" (&lt;br /&gt;  set/a final+=2&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyB=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="C:" (&lt;br /&gt; if not "%IsAlreadyC%"=="1" (&lt;br /&gt;  set/a final+=4&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyC=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="D:" (&lt;br /&gt; if not "%IsAlreadyD%"=="1" (&lt;br /&gt;  set/a final+=8&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyD=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="E:" (&lt;br /&gt; if not "%IsAlreadyE%"=="1" (&lt;br /&gt;  set/a final+=16&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyE=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="F:" (&lt;br /&gt; if not "%IsAlreadyF%"=="1" (&lt;br /&gt;  set/a final+=32&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyF=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="G:" (&lt;br /&gt; if not "%IsAlreadyG%"=="1" (&lt;br /&gt;  set/a final+=64&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyG=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="H:" (&lt;br /&gt; if not "%IsAlreadyH%"=="1" (&lt;br /&gt;  set/a final+=128&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyH=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="I:" (&lt;br /&gt; if not "%IsAlreadyI%"=="1" (&lt;br /&gt;  set/a final+=256&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyI=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="J:" (&lt;br /&gt; if not "%IsAlreadyJ%"=="1" (&lt;br /&gt;  set/a final+=512&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyJ=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="K:" (&lt;br /&gt; if not "%IsAlreadyK%"=="1" (&lt;br /&gt;  set/a final+=1024&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyK=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="L:" (&lt;br /&gt; if not "%IsAlreadyL%"=="1" (&lt;br /&gt;  set/a final+=2048&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyL=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="M:" (&lt;br /&gt; if not "%IsAlreadyM%"=="1" (&lt;br /&gt;  set/a final+=4096&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyM=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="N:" (&lt;br /&gt; if not "%IsAlreadyN%"=="1" (&lt;br /&gt;  set/a final+=8192&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyN=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="O:" (&lt;br /&gt; if not "%IsAlreadyO%"=="1" (&lt;br /&gt;  set/a final+=16384&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyO=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="P:" (&lt;br /&gt; if not "%IsAlreadyP%"=="1" (&lt;br /&gt;  set/a final+=32768&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyP=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="Q:" (&lt;br /&gt; if not "%IsAlreadyQ%"=="1" (&lt;br /&gt;  set/a final+=65536&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyQ=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="R:" (&lt;br /&gt; if not "%IsAlreadyR%"=="1" (&lt;br /&gt;  set/a final+=131072&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyR=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="S:" (&lt;br /&gt; if not "%IsAlreadyS%"=="1" (&lt;br /&gt;  set/a final+=262144&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyS=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="T:" (&lt;br /&gt; if not "%IsAlreadyT%"=="1" (&lt;br /&gt;  set/a final+=524288&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyT=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="U:" (&lt;br /&gt; if not "%IsAlreadyU%"=="1" (&lt;br /&gt;  set/a final+=1048576&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyU=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="V:" (&lt;br /&gt; if not "%IsAlreadyV%"=="1" (&lt;br /&gt;  set/a final+=2097152&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyV=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="W:" (&lt;br /&gt; if not "%IsAlreadyW%"=="1" (&lt;br /&gt;  set/a final+=4194304&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyW=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="X:" (&lt;br /&gt; if not "%IsAlreadyX%"=="1" (&lt;br /&gt;  set/a final+=8388608&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyX=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="Y:" (&lt;br /&gt; if not "%IsAlreadyY%"=="1" (&lt;br /&gt;  set/a final+=16777216&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyY=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if "%mch%"=="Z:" (&lt;br /&gt; if not "%IsAlreadyZ%"=="1" (&lt;br /&gt;  set/a final+=33554432&lt;br /&gt;  echo.&lt;br /&gt;  echo  The '%mch%' drive added&lt;br /&gt;  set IsAlreadyZ=1&lt;br /&gt;  exit/b0&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;will be replaced by this:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:GenerateDrivePolicyValue&lt;br /&gt;set alphabet=A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z&lt;br /&gt;set init=1&lt;br /&gt;for %%A in (%alphabet%) do (call:LoadArrayProc %%A)&lt;br /&gt;set init=&lt;br /&gt;for %%A in (%*) do (for %%B in (%alphabet%) do (if "%%A"=="%%B:" (call:RaiseValBy %%B||echo  Drive '%%B:' has already been added)))&lt;br /&gt;for %%A in (%alphabet%) do (set Drive%%A=&amp;if defined IsAlready%%A (set IsAlready%%A=))&lt;br /&gt;set alphabet=&lt;br /&gt;call:ThrowErrorLevel %final%&lt;br /&gt;exit/b%errorlevel%&lt;br /&gt;:ThrowErrorLevel&lt;br /&gt;set final=&lt;br /&gt;exit/b%1&lt;br /&gt;:LoadArrayProc&lt;br /&gt;set Drive%1=%init%&amp;set/a init*=2&amp;exit/b0&lt;br /&gt;:RaiseValBy&lt;br /&gt;set var1=%% IsAlready%1 %%&lt;br /&gt;set var1=%var1: =%&lt;br /&gt;for %%A in (%var1%) do (call:RaiseValBy_1 %%A||exit/b1)&lt;br /&gt;set var2=%% Drive%1 %%&lt;br /&gt;set var2=%var2: =%&lt;br /&gt;call set/a final=%final%+%var2%&lt;br /&gt;set IsAlready%1=1&lt;br /&gt;set var2=&amp;set var1=&lt;br /&gt;exit/b0&lt;br /&gt;:RaiseValBy_1&lt;br /&gt;if "%1"=="1" (exit/b1) else (exit/b0)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Above code returns desired NoDrives/NoViewOnDrive/NoDriveAutoRun policy value in ERRORLEVEL, so that you can use it as a function in your scripts:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;call:GenerateDrivePolicyValue E: I: L: O: P: R: V:&lt;br /&gt;reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\policies\Explorer" /v "NoDrives" /t "REG_DWORD" /d "%errorlevel%" /f&gt;nul 2&gt;&amp;1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here's the result:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img268.imageshack.us/img268/1532/luup.png"/&gt;&lt;br /&gt;&lt;br /&gt;Please note that ERRORLEVEL will get overwritten after REG execution, so you need to save it to another variable:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;set PolicyValue=%errorlevel%&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;... or call value generation routine multiple times.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-1680778147118188047?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/1680778147118188047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/02/loops-are-wonderful.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1680778147118188047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1680778147118188047'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/02/loops-are-wonderful.html' title='Loops are wonderful'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-4675024738030130267</id><published>2012-01-28T12:17:00.000+01:00</published><updated>2012-01-28T12:17:36.031+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Function: CdRomDevicesEnumerator</title><content type='html'>&lt;pre class="brush: bat"&gt;for %%A in ( A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do (&lt;br /&gt; reg query &amp;quot;HKLM\SYSTEM\MountedDevices&amp;quot; /v &amp;quot;\DosDevices\%%A:&amp;quot;&amp;gt;nul 2&amp;gt;&amp;amp;1&amp;amp;&amp;amp;(&lt;br /&gt;  reg query &amp;quot;HKLM\SYSTEM\MountedDevices&amp;quot; /v &amp;quot;\DosDevices\%%A:&amp;quot;|find &amp;quot;4300640052006F006D00&amp;quot;&amp;gt;nul 2&amp;gt;&amp;amp;1&amp;amp;&amp;amp;(&lt;br /&gt;   set dev=1&amp;amp;&amp;amp;(&lt;br /&gt;    echo  %%A: is a CD-ROM device&lt;br /&gt;   )&lt;br /&gt;  )&lt;br /&gt; )&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;if not &amp;quot;%dev%&amp;quot;==&amp;quot;1&amp;quot; (&lt;br /&gt; echo  No CD-ROM devices found&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-4675024738030130267?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/4675024738030130267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/01/function-cdromdevicesenumerator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4675024738030130267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4675024738030130267'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/01/function-cdromdevicesenumerator.html' title='Function: CdRomDevicesEnumerator'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-8386387780523899290</id><published>2012-01-27T18:58:00.000+01:00</published><updated>2012-01-27T18:58:25.697+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Function: SetWindowHeight</title><content type='html'>&lt;code&gt;SetWindowHeight&lt;/code&gt; receives signed or unsigned integers.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;@echo off&lt;br /&gt;for %%A in ( higherbits lowerbits ) do if defined %%A set %%A=&lt;br /&gt;set myself=%~n0&lt;br /&gt;title Type 'reset' to restore default&lt;br /&gt;:loop&lt;br /&gt;echo.&lt;br /&gt;set ch=&lt;br /&gt;set/p ch=&amp;Atilde;&amp;ordm;Increase window height by   &lt;br /&gt;call:SetWindowHeight %ch%&amp;amp;&amp;amp;goto RestartMyself&lt;br /&gt;goto loop&lt;br /&gt;:SetWindowHeight&lt;br /&gt;if &amp;quot;%1&amp;quot;==&amp;quot;reset&amp;quot; (&lt;br /&gt; call:ResetWindowHeight&lt;br /&gt; goto RestartMyself&lt;br /&gt;)&lt;br /&gt;::title Setting appropriate window height ...&lt;br /&gt;reg query &amp;quot;HKCU\Console&amp;quot;|find &amp;quot;system32&amp;quot;&amp;gt;nul 2&amp;gt;&amp;amp;1||goto loaddefault&lt;br /&gt;for /f %%A in ('reg query &amp;quot;HKCU\Console&amp;quot;^|find &amp;quot;system32&amp;quot;') do reg query &amp;quot;%%A&amp;quot; /v &amp;quot;WindowSize&amp;quot;&amp;gt;nul 2&amp;gt;&amp;amp;1||goto loaddefault&lt;br /&gt;for /f %%A in ('reg query &amp;quot;HKCU\Console&amp;quot;^|find &amp;quot;system32&amp;quot;') do reg query &amp;quot;%%A&amp;quot; /v &amp;quot;WindowSize&amp;quot;&amp;gt;file.tmp&lt;br /&gt;for /f &amp;quot;tokens=3&amp;quot; %%A in ('type file.tmp^|find &amp;quot;WindowSize&amp;quot;') do (&lt;br /&gt; set tempval=%%A&lt;br /&gt;)&lt;br /&gt;del file.tmp&lt;br /&gt;set wHeight=%tempval:~0,-4%&lt;br /&gt;set tempval=&lt;br /&gt;:increase_height&lt;br /&gt;set/a wHeight*=1&lt;br /&gt;::set/a wHeight=( %wHeight% - ( %wHeight% - %1 ))&lt;br /&gt;set/a wHeight=( %wHeight% + (%1))&lt;br /&gt;if %wHeight% LEQ 0 (&lt;br /&gt; set higherbits=19&lt;br /&gt; goto loaddefault&lt;br /&gt;)&lt;br /&gt;reg add &amp;quot;HKCU&amp;quot; /v &amp;quot;remove_me&amp;quot; /t &amp;quot;REG_DWORD&amp;quot; /d &amp;quot;%wHeight%&amp;quot; /f&amp;gt;nul 2&amp;gt;&amp;amp;1&lt;br /&gt;for /f &amp;quot;tokens=3&amp;quot; %%G in ('reg query &amp;quot;HKCU&amp;quot; /v &amp;quot;remove_me&amp;quot;') do (&lt;br /&gt; set higherbits=%%G&lt;br /&gt;)&lt;br /&gt;reg delete &amp;quot;HKCU&amp;quot; /v &amp;quot;remove_me&amp;quot; /f&amp;gt;nul 2&amp;gt;&amp;amp;1&lt;br /&gt;:loaddefault&lt;br /&gt;for /f &amp;quot;tokens=3&amp;quot; %%G in ('reg query &amp;quot;HKCU\Console&amp;quot; /v &amp;quot;WindowSize&amp;quot;') do (&lt;br /&gt; set tempval=%%G&lt;br /&gt;)&lt;br /&gt;if not defined higherbits (&lt;br /&gt; set wHeight=%tempval:~0,-4%&lt;br /&gt; goto increase_height&lt;br /&gt;)&lt;br /&gt;set lowerbits=%tempval:~-4%&lt;br /&gt;if &amp;quot;%higherbits:~0,2%&amp;quot;==&amp;quot;0x&amp;quot; (&lt;br /&gt; set higherbits=%higherbits:~2%&lt;br /&gt;)&lt;br /&gt;set tempval=&lt;br /&gt;set regfile=%RANDOM%.reg&lt;br /&gt;echo Windows Registry Editor Version 5.00&amp;gt;%regfile%&lt;br /&gt;echo.&amp;gt;&amp;gt;%regfile%&lt;br /&gt;echo [HKEY_CURRENT_USER\Console\%%SystemRoot%%_system32_cmd.exe]&amp;gt;&amp;gt;%regfile%&lt;br /&gt;echo &amp;quot;WindowSize&amp;quot;=dword:%higherbits%%lowerbits%&amp;gt;&amp;gt;%regfile%&lt;br /&gt;reg import %regfile%&amp;gt;nul 2&amp;gt;&amp;amp;1&amp;amp;&amp;amp;del %regfile%&lt;br /&gt;if exist %regfile% (&lt;br /&gt; del %regfile%&lt;br /&gt; exit/b1&lt;br /&gt;)&lt;br /&gt;exit/b0&lt;br /&gt;:ResetWindowHeight&lt;br /&gt;for /f %%A in ('reg query &amp;quot;HKCU\Console&amp;quot;^|find &amp;quot;system32&amp;quot;') do reg delete &amp;quot;%%A&amp;quot; /v &amp;quot;WindowSize&amp;quot; /f&amp;gt;nul 2&amp;gt;&amp;amp;1&lt;br /&gt;exit/b0&lt;br /&gt;:RestartMyself&lt;br /&gt;::start cmd /k &amp;quot;@echo off&amp;amp;ping -n 2 127.0.0.1&amp;gt;nul 2&amp;gt;&amp;amp;1&amp;amp;start %myself%.cmd /WindowSizeSet&amp;amp;exit&amp;quot;&lt;br /&gt;start cmd /k &amp;quot;@echo off&amp;amp;ping -n 2 127.0.0.1&amp;gt;nul 2&amp;gt;&amp;amp;1&amp;amp;start %myself%.cmd&amp;amp;exit&amp;quot;&lt;br /&gt;exit&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-8386387780523899290?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/8386387780523899290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/01/function-setwindowheight.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/8386387780523899290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/8386387780523899290'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/01/function-setwindowheight.html' title='Function: SetWindowHeight'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-4817003700434659701</id><published>2012-01-27T16:36:00.002+01:00</published><updated>2012-01-27T16:45:29.246+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>New freeware: SuppressDwmPerformancePrompts</title><content type='html'>SuppressDwmPerformancePrompts may fix WDM interrupting games as well as resource heavy applications with an annoying message about the Aero color scheme being changed or turned off. Examples:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img806.imageshack.us/img806/421/imagegoq.jpg"/&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The bottom line is game start time. This script disables Aero, starts game while a simultaneous Command Prompt's instance is counting down to turn Aero back on, thus (not necessarily) preventing WDM from showing the interrupting message. The reason you may want Aero turned back on is because game recorders such as Fraps require Aero to be running in order to record both your desktop as well as your gameplay if, say, you are doing a video tutorial that needs to include both simultaneously. This script's main purpose though is to prevent WDM from disrupting your gameplay with messages like the ones pictured above.&lt;br /&gt;&lt;br /&gt;[&lt;a href="https://skydrive.live.com/redir.aspx?cid=613c64ef069e3edd&amp;resid=613C64EF069E3EDD!136&amp;parid=613C64EF069E3EDD!109"&gt;Download&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-4817003700434659701?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/4817003700434659701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2012/01/new-freeware-suppressdwmperformanceprom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4817003700434659701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4817003700434659701'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2012/01/new-freeware-suppressdwmperformanceprom.html' title='New freeware: SuppressDwmPerformancePrompts'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-7645369205582186183</id><published>2011-11-11T11:12:00.001+01:00</published><updated>2012-02-16T19:33:06.963+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>GTweak v1.56</title><content type='html'>&lt;a href="http://gtweak.prv.pl/"&gt;Download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-7645369205582186183?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/7645369205582186183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/11/gtweak-v156-has-been-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/7645369205582186183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/7645369205582186183'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/11/gtweak-v156-has-been-released.html' title='GTweak v1.56'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-5412097979524196468</id><published>2011-11-07T22:53:00.001+01:00</published><updated>2011-11-08T07:24:54.439+01:00</updated><title type='text'>A boomerang problem: OS stalls and how to help prevent them</title><content type='html'>&lt;center&gt;&lt;a href="http://bitsum.com/prolasso.php"&gt;&lt;img src="http://bitsum.com/images/Logos-process-Lasso-100x123.gif"/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;p&gt;It is pretty annoying when you have dozens of windows and documents opened, and OS suddenly freezes. I had only one solution: reset the laptop. I knew my hardware was not the cause, so I began to look for software addressing this problem. I have made small research around OS stalls and have found sparingly advertised application called Process Lasso. An article written about problem it addresses was convincing, anyway of that I am distrustful in matter of &lt;a href="http://www.bitsum.com/winmemboost.htm"&gt;wonderful healing optimizers&lt;/a&gt;. Process Lasso, process priority optimizer is available in both free and paid versions. I was really surprised when I saw how little disk space it occupies (as living in times of monstrously capacious storage devices most programmers do not care about space), and when I saw it using little more RAM. I have tried free version. After week of testing, I almost forgot about it. Reason? No stalls, CPU-hungry-being tendency of processes has gone. That was free option, coping with situations with which Windows CPU scheduler could not deal with. Great value as for free software.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I got a give-away license, allowing for unlimited paid version usage, limited only in matter of product updates. Paid version offers much more functions, but those are not that important for normal users. I am one of those &amp;quot;abnormal&amp;quot;, wanting to have yet more control. I felt overwhelmed by numerous process control possibilities. These include (may not be all!): conditional CPU affinity/process (I/O) priority/both changes, default priorities/affinities/power plans, disallowed processes, gaming mode triggers, power plan switcher, no-sleep processes, foreground/thread boosting, multimedia mode triggers, instance limiting, conditional process restart/termination, keep-running process list and much more. I admit, I do not use all of them - ProBalance does its work so great that I do not have to make any adjustments. I love power plan switcher (Energy Saver), which allows me to set my computer to have energy-saving power plan turned on when I am away from my laptop. It was advertised most users need not to change anything - author did not lie.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;All in all, Process Lasso is the most valuable program I ever used. This application is the best way to take control over galloping processes, thus helping OS to survive high CPU loads. Pro version comes in lowest price possible, to keep business prospering, so it is worth supporting the author, as you will feel the money were well-spent. I do not bear consequences of OS stalls anymore since I installed Process Lasso.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-5412097979524196468?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/5412097979524196468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/11/boomerang-problem-os-stalls-and-how-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/5412097979524196468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/5412097979524196468'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/11/boomerang-problem-os-stalls-and-how-to.html' title='A boomerang problem: OS stalls and how to help prevent them'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-4035114731319623550</id><published>2011-09-02T20:29:00.000+02:00</published><updated>2011-09-02T20:29:09.053+02:00</updated><title type='text'>New freeware: RegXchg</title><content type='html'>&lt;span style="line-height: 0cm;"&gt;This utility will allow you to switch specified registry value between 2 given data, for example changing hidden files' showing state (&lt;b&gt;xchg_hidden.cmd&lt;/b&gt; inside distribution package). As of yet, it supports DWORD values only; it's meant to alternate *yes/no* system settings. To get detailed info on how to use it, &lt;a href="http://gtweak.prv.pl/download.html"&gt;download&lt;/a&gt; it, unpack to &lt;code&gt;%windir%\System32&lt;/code&gt; and invoke (from elevated command prompt) with &lt;code&gt;/?&lt;/code&gt; switch.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-4035114731319623550?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/4035114731319623550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/09/new-freeware-regxchg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4035114731319623550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4035114731319623550'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/09/new-freeware-regxchg.html' title='New freeware: RegXchg'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-1522996129408826395</id><published>2011-08-29T21:42:00.000+02:00</published><updated>2011-08-29T21:42:46.444+02:00</updated><title type='text'>Be sure to download GTweak from prv.pl</title><content type='html'>Some software directories still have old primary download server for GTweak, navigating to &lt;b&gt;gtweak.110mb.com/files/gtweak.zip&lt;/b&gt;, which is obsolete, and not updated anymore - latest version you can get &lt;u&gt;there&lt;/u&gt; is &lt;b&gt;1.54&lt;/b&gt;, which is not as fine as 1.55. Just make sure before downloading that source is &lt;b&gt;gtweak.prv.pl&lt;/b&gt;, that's all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-1522996129408826395?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/1522996129408826395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/08/be-sure-to-download-gtweak-from-prvpl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1522996129408826395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1522996129408826395'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/08/be-sure-to-download-gtweak-from-prvpl.html' title='Be sure to download GTweak from prv.pl'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-6449895298455613937</id><published>2011-08-24T14:13:00.006+02:00</published><updated>2012-01-27T18:07:01.060+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Function: BinToHex</title><content type='html'>Input should be a binary string, for instance &lt;code&gt;100111101110110&lt;/code&gt;&lt;br /&gt;Output is in &lt;code&gt;bthfinal&lt;/code&gt;, for the above example it will be &lt;code&gt;4F76&lt;/code&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;:BinToHex&lt;br /&gt;set tempvar=%1&lt;br /&gt;set tempval=%tempvar%&lt;br /&gt;:BinToHex_lp&lt;br /&gt;set bin=%tempvar:~-4%&lt;br /&gt;call:assign_hex||goto bintohex_end&lt;br /&gt;set bthfinal=%retval%%bthfinal%&lt;br /&gt;set retval=&lt;br /&gt;set bin=&lt;br /&gt;set tempvar=%tempvar:~0,-4%&lt;br /&gt;if defined tempvar goto BinToHex_lp&lt;br /&gt;:bintohex_end&lt;br /&gt;set retval=&amp;amp;set tempvar=&amp;amp;set tempval=&amp;amp;set bin=&lt;br /&gt;exit/b0&lt;br /&gt;:assign_hex&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0000&amp;quot; (set retval=0&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0&amp;quot; (set retval=0&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0001&amp;quot; (set retval=1&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1&amp;quot; (set retval=1&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0010&amp;quot; (set retval=2&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;10&amp;quot; (set retval=2&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0011&amp;quot; (set retval=3&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;11&amp;quot; (set retval=3&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0100&amp;quot; (set retval=4&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;100&amp;quot; (set retval=4&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0101&amp;quot; (set retval=5&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;101&amp;quot; (set retval=5&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0110&amp;quot; (set retval=6&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;110&amp;quot; (set retval=6&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;0111&amp;quot; (set retval=7&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;111&amp;quot; (set retval=7&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1000&amp;quot; (set retval=8&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1001&amp;quot; (set retval=9&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1010&amp;quot; (set retval=A&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1011&amp;quot; (set retval=B&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1100&amp;quot; (set retval=C&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1101&amp;quot; (set retval=D&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1110&amp;quot; (set retval=E&amp;amp;exit/b0)&lt;br /&gt;if &amp;quot;%bin%&amp;quot;==&amp;quot;1111&amp;quot; (set retval=F&amp;amp;exit/b0)&lt;br /&gt;exit/b1&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-6449895298455613937?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/6449895298455613937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/08/function-bintohex.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/6449895298455613937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/6449895298455613937'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/08/function-bintohex.html' title='Function: BinToHex'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-830938926869635276</id><published>2011-08-22T16:01:00.012+02:00</published><updated>2012-01-27T18:03:59.831+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Function: IsRunAsAdmin</title><content type='html'>&lt;pre class="brush: bat"&gt;:IsRunWithElevatedRights&lt;br /&gt;reg add "HKLM\SOFTWARE\Microsoft\WBEM" /v "" /d "" /f&amp;gt;nul 2&amp;gt;&amp;amp;1||exit/b1&lt;br /&gt;exit/b0&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-830938926869635276?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/830938926869635276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/08/function-isrunasadmin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/830938926869635276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/830938926869635276'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/08/function-isrunasadmin.html' title='Function: IsRunAsAdmin'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-1937103497563939775</id><published>2011-08-21T16:40:00.001+02:00</published><updated>2011-08-24T14:39:11.981+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcement'/><title type='text'>New feature in next version</title><content type='html'>GTweak v1.55 will be able to hide &lt;b&gt;Show files and folders&lt;/b&gt; radiobutton in &lt;b&gt;Folder Options&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Before:&lt;br /&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-A2o1jjyD5y4/TlEX3u3heGI/AAAAAAAAAAk/zkzHrraDVbg/s1600/1.PNG" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After:&lt;br /&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-69bq5j4ifLc/TlEYGuEiW2I/AAAAAAAAAAs/mWgsTkXtrac/s1600/2.PNG" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-1937103497563939775?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/1937103497563939775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/08/new-feature-in-next-version.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1937103497563939775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1937103497563939775'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/08/new-feature-in-next-version.html' title='New feature in next version'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-A2o1jjyD5y4/TlEX3u3heGI/AAAAAAAAAAk/zkzHrraDVbg/s72-c/1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-1568220739202250394</id><published>2011-08-10T21:27:00.000+02:00</published><updated>2011-08-10T21:27:54.980+02:00</updated><title type='text'>Next release (and all further) of GTweak will be 100% free</title><content type='html'>Both home and business/commercial users can use it freely; either modify it or copy its code, wherein mention of myself while copying code will be strongly appreciated.&lt;br /&gt;Since now, GTweak is&lt;br /&gt;&lt;br /&gt;&lt;center style="color: #38761d;"&gt;&lt;h1&gt;100% free!&lt;/h1&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-1568220739202250394?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/1568220739202250394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/08/next-release-and-all-further-of-gtweak.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1568220739202250394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1568220739202250394'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/08/next-release-and-all-further-of-gtweak.html' title='Next release (and all further) of GTweak will be 100% free'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-2212421535949656484</id><published>2011-06-25T20:39:00.002+02:00</published><updated>2012-02-16T19:27:18.446+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='batch_tip'/><title type='text'>Always define ExitCode while using exit/b!</title><content type='html'>I encountered very rare (I think) case in which &lt;b&gt;exit/b&lt;/b&gt; caused ERRORLEVEL to set to &lt;b&gt;non-zero&lt;/b&gt; outside the procedure. I don't know how did it happen, but I know exactly it wasn't caused by SET returning ERRORLEVEL on flushing absent variable:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bat"&gt;set var=123&lt;br /&gt;::ERRORLEVEL = 0 - even, if var was previously 123 &lt;br /&gt;set var=&lt;br /&gt;::ERRORLEVEL = 0 - variable terminating successful&lt;br /&gt;set var=&lt;br /&gt;::ERRORLEVEL = 1 variable doesn't exist&lt;/pre&gt;&lt;br /&gt;Very possible I will never discover the cause of the problem, because &lt;b&gt;exit/b&lt;/b&gt; was itself a problem, not overlapping SET commands. My advice is: always use &lt;b&gt;exit/b0&lt;/b&gt; instead of same &lt;b&gt;exit/b&lt;/b&gt;. This will save you time, as while working on complex procedure it may cause you a headache, and code may become more readable if you are happy about hard typing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-2212421535949656484?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/2212421535949656484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/06/always-define-exitcode-while-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2212421535949656484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2212421535949656484'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/06/always-define-exitcode-while-using.html' title='Always define ExitCode while using exit/b!'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-3884297734334872162</id><published>2011-06-24T14:42:00.002+02:00</published><updated>2012-02-28T16:54:17.471+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='command_removed'/><title type='text'>CD_DVD_AUTORUN_DISABLE will not be available in next version</title><content type='html'>I've decided to remove it due to non-sense purpose. Who needs it if it leaves USB Autorun active by default? Most of you would like to get opposite result.&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-3884297734334872162?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/3884297734334872162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/06/cddvdautorundisable-will-not-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/3884297734334872162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/3884297734334872162'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/06/cddvdautorundisable-will-not-be.html' title='CD_DVD_AUTORUN_DISABLE will not be available in next version'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-6467415043859838643</id><published>2011-05-17T20:54:00.000+02:00</published><updated>2011-05-17T20:54:46.406+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcement'/><title type='text'>GTweak next version's feature announcement</title><content type='html'>I implemented registry backup code, a code which I should include long ago.. &lt;br /&gt;I just finished testing registry backup code; handles all Windows' since 2000. It generates Recovery Console registry restoration batch file for &amp;lt;=Server 2003 and error-handling CMD script for Vista and higher to be run from within Setup DVD's Command Prompt. GTweak offers to print restoration instructions for average-skill users, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-6467415043859838643?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/6467415043859838643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/05/gtweak-next-versions-feature.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/6467415043859838643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/6467415043859838643'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/05/gtweak-next-versions-feature.html' title='GTweak next version&apos;s feature announcement'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-2808377056220220810</id><published>2011-05-05T20:10:00.003+02:00</published><updated>2012-02-16T18:52:36.211+01:00</updated><title type='text'>Windows 7: How to fix window transparency problem...</title><content type='html'>Maybe DWM bug (I'm running Windows 7 without SP1). Namely, window transparency disabled itself automagically after hard reboot, and enabling attempts caused completely dark windows. I did small research on transparency-problem-related articles, but have not found solution. I decided to show my solution (I didn't know it will work).&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Click on &lt;b&gt;Start&lt;/b&gt;, type &lt;b&gt;cmd&lt;/b&gt;, then right-click &lt;b&gt;cmd.exe&lt;/b&gt; and select &lt;b&gt;Run as Administrator&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Type the following commands (&lt;b&gt;note&lt;/b&gt;: the space after &lt;code&gt;start=&lt;/code&gt;):&lt;br /&gt;&lt;/li&gt;&lt;pre class="brush: bat"&gt;net stop uxsms&lt;br /&gt;sc config uxsms start= disabled&lt;br /&gt;&lt;/pre&gt;&lt;/ol&gt;First command will stop &lt;b&gt;D&lt;/b&gt;esktop &lt;b&gt;W&lt;/b&gt;indow &lt;b&gt;M&lt;/b&gt;anager service, second will prevent it from starting on startup. Reboot. Click on &lt;b&gt;Start&lt;/b&gt; and type &lt;b&gt;aero&lt;/b&gt;. Then, choose an option &lt;b&gt;Find and fix problems with transparency and other visual effects&lt;/b&gt;. Click on &lt;b&gt;Next&lt;/b&gt; and wait until transparency goes back!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-2808377056220220810?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/2808377056220220810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/05/windows-7-how-to-fix-window.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2808377056220220810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/2808377056220220810'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/05/windows-7-how-to-fix-window.html' title='Windows 7: How to fix window transparency problem...'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-4463891304751545210</id><published>2011-03-28T22:22:00.002+02:00</published><updated>2011-12-20T22:34:09.730+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcement'/><title type='text'>Next version of GTweak should come very soon</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/-pKxqxxp0ykk/TZDr5m_787I/AAAAAAAAAAc/ZJ2U5D4piVU/s1600/script_integration.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-pKxqxxp0ykk/TZDr5m_787I/AAAAAAAAAAc/ZJ2U5D4piVU/s1600/script_integration.png" /&gt;&lt;/a&gt;I'm just finishing version v1.50, so please be look on GTweak's homepage.&lt;br /&gt;The changes are huge, I added simple script support (associates with *.gts files), so it'll be possible to apply tens of tweaks at once.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Second improvement is a Wizard Mode - user uses numeric keypad to choose tweaks in next steps. And, numerous bug fixes, as always. While working on (big) batch file, it's a bit hard to get everything working 100% on 2000 thru Windows 7. Furthermore, I wiped ReadMe out of gtweak.cmd and placed into gtweak.hlp (CAB compressed text).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Oa9ohA7jSEI/TZDr4gdknuI/AAAAAAAAAAY/eAKhT2p1bwM/s1600/wzmode.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-Oa9ohA7jSEI/TZDr4gdknuI/AAAAAAAAAAY/eAKhT2p1bwM/s1600/wzmode.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;[final order of items and look of Wizard Mode may be different]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-4463891304751545210?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/4463891304751545210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2011/03/next-version-of-gtweak-should-come-very.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4463891304751545210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/4463891304751545210'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2011/03/next-version-of-gtweak-should-come-very.html' title='Next version of GTweak should come very soon'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-pKxqxxp0ykk/TZDr5m_787I/AAAAAAAAAAc/ZJ2U5D4piVU/s72-c/script_integration.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-7005743049765511779</id><published>2010-12-07T22:42:00.000+01:00</published><updated>2010-12-07T22:42:02.658+01:00</updated><title type='text'>GTweak suggestions here or on my email...</title><content type='html'>Place here your propositions/suggestions or just contact me via email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-7005743049765511779?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/7005743049765511779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2010/12/gtweak-suggestions-here-or-on-my-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/7005743049765511779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/7005743049765511779'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2010/12/gtweak-suggestions-here-or-on-my-email.html' title='GTweak suggestions here or on my email...'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2337233707531601865.post-1883852584756997427</id><published>2010-11-28T08:45:00.000+01:00</published><updated>2010-11-28T08:45:36.241+01:00</updated><title type='text'>Welcome to the GTweak News blog!</title><content type='html'>Here you can read about GTweak announcements, releases and other news.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2337233707531601865-1883852584756997427?l=gtweak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gtweak.blogspot.com/feeds/1883852584756997427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gtweak.blogspot.com/2010/11/welcome-to-gtweak-news-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1883852584756997427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2337233707531601865/posts/default/1883852584756997427'/><link rel='alternate' type='text/html' href='http://gtweak.blogspot.com/2010/11/welcome-to-gtweak-news-blog.html' title='Welcome to the GTweak News blog!'/><author><name>gtweak</name><uri>http://www.blogger.com/profile/06827895124449803459</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
