<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Изменение параметра реестра]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9966&amp;type=atom" />
	<updated>2014-09-15T12:40:57Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9966</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Изменение параметра реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86485#p86485" />
			<content type="html"><![CDATA[<p><strong>greg zakharov</strong>, Спасибо большое!<br />Работает, но в случае присутствия в з начении domain.site.com без &quot;*.&quot;, он &quot;*.&quot; не добавляет ((</p><p><strong>Yury</strong>, Спасибо большое!<br />Работает!</p>]]></content>
			<author>
				<name><![CDATA[SANIOK_AV]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25238</uri>
			</author>
			<updated>2014-09-15T12:40:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86485#p86485</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Изменение параметра реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86439#p86439" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>@echo off
setlocal enabledelayedexpansion

set &quot;KeyName=HKCU\Software\programma&quot;
set &quot;Value=parametr&quot;
set &quot;Domain=domain.site.com&quot;

 (
 for /f &quot;delims=&quot; %%i in (&#039;
  reg query &quot;%KeyName%&quot; /v &quot;%Value%&quot; /f &quot;%Domain%&quot; /d^| findstr /il &quot;%Domain%&quot;
 &#039;) do (
  set var_1=%%i
  for %%j in (%%i) do (
   if /i &quot;%%j&quot;==&quot;%Domain%&quot; (
    set var_1=!var_1:*REG_SZ=!
    for /f &quot;tokens=*&quot; %%k in (&quot;!var_1:%Domain%=*.%Domain%!&quot;) do (
     reg add &quot;%KeyName%&quot; /v &quot;%Value%&quot; /d &quot;%%k&quot; /f&gt;nul
     )
    )
   )
  )
 )|| (
 for /f &quot;delims=&quot; %%i in (&#039;
  reg query &quot;%KeyName%&quot; /v &quot;%Value%&quot; 2^&gt;nul^| findstr /ilc:&quot;%Value%&quot;
 &#039;) do (
  set var_1=%%i
  for %%j in (%%i) do (
   set var_2=%%j
   )
  if /i !var_2!==REG_SZ (
   reg add &quot;%KeyName%&quot; /v &quot;%Value%&quot; /d &quot;*.%Domain%&quot; /f&gt;nul
   ) else (
   for /f &quot;tokens=*&quot; %%j in (&quot;!var_1:*REG_SZ=!&quot;) do (
    reg add &quot;%KeyName%&quot; /v &quot;%Value%&quot; /d &quot;%%j;*.%Domain%&quot; /f&gt;nul
    )
   )
  )
 )

endlocal
exit /b</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Yury]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30230</uri>
			</author>
			<updated>2014-09-13T20:54:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86439#p86439</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Изменение параметра реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86436#p86436" />
			<content type="html"><![CDATA[<p><strong>2alexii</strong><br />На WSH все же код будет поболее, хотя в плане регулярных выражений... но можно обойтись и без них.<br /><strong>SANIOK_AV</strong><br />Если правельно понял, то как-то так:<br /></p><div class="codebox"><pre><code>@echo off
  setlocal enabledelayedexpansion
    set &quot;key=2^&gt;nul reg query HKCU\Software\Programma&quot;
    for /f &quot;tokens=3&quot; %%i in (
      &#039;%key% ^| findstr /irc:&quot;parametr&quot;&#039;
    ) do set &quot;val=%%i&quot;
    if &quot;%val%&quot; equ &quot;&quot; echo.Value is empty or does not exist. &amp; goto:eof
    set &quot;bak=%val%&quot;
    set &quot;reg=domain.site.com&quot;
    :substring
      if &quot;%val%&quot; equ &quot;&quot; goto:end
      for /f &quot;delims=;&quot; %%i in (&quot;%val%&quot;) do (
        if &quot;%%i&quot; equ &quot;%reg%&quot;   set &quot;cut=%%i&quot;
        if &quot;%%i&quot; equ &quot;*.%reg%&quot; set &quot;ful=%%i&quot;
      )
    :split
      set &quot;chr=%val:~0,1%&quot;
      set &quot;val=%val:~1%&quot;
      if &quot;%val%&quot; equ &quot;&quot;  goto:substring
      if &quot;%chr%&quot; neq &quot;;&quot; goto:split
      goto:substring
    :end
    if &quot;%ful%&quot; equ &quot;&quot; if &quot;%cut%&quot; equ &quot;&quot; set &quot;bak=%bak%*.%reg%&quot;
    if &quot;%ful%&quot; equ &quot;&quot; if &quot;%cut%&quot; neq &quot;&quot; set &quot;bak=!bak:%reg%=*.%reg%!&quot;
    echo.%bak%
  endlocal
exit /b</code></pre></div><p>Здесь все просто: проверяем наличие ключа и, если таковой имеется, извлекаем строку из параметра parametr, который разбиваем на подстроки и сверяем их с wildcard *.domain.site.com, - это в общем, с деталями, полагаю, разберетесь самостоятельно.</p>]]></content>
			<author>
				<name><![CDATA[greg zakharov]]></name>
			</author>
			<updated>2014-09-13T20:07:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86436#p86436</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Изменение параметра реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86414#p86414" />
			<content type="html"><![CDATA[<p>Это в смысле на vbs или js ?<br />Меня то как бы vbs устроит и так Спасибо что поможете.<br />Но хотелось бы CMD/BAT потому как я в этом хоть чуть что-то знаю и потом бы это мне пригодилось в будущем для каких-то подобных моментов, а в vbs я вообще полный ноль((</p>]]></content>
			<author>
				<name><![CDATA[SANIOK_AV]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25238</uri>
			</author>
			<updated>2014-09-12T08:45:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86414#p86414</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Изменение параметра реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86413#p86413" />
			<content type="html"><![CDATA[<p>WSH устроит?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2014-09-12T08:39:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86413#p86413</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Изменение параметра реестра]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=86412#p86412" />
			<content type="html"><![CDATA[<p>Доброго времени суток!<br />Помогите пожалуйста с написанием батника.<br />Существует некоторый параметр реестра HKCU\software\programma\parametr типа REG_SZ.<br />Значение этого параметра представляет собой:<br />либо пустое значение<br />либо строку вида что-то типа: site1.com<br />либо строку состоящую из набора различных имён и масок разделённых между собой точкой с запятой типа: site1.com;megasite2.com;123.org;*.org.ru<br />либо вообще этотого параметра может не существовать - в этом случае ничего не меняем (т.е. параметр не создаём)</p><p>Если же параметр существует, то поступаем следующим образом:<br />Нужно проанализировать его значение на присутствие маски *.domain.site.com<br />Если эта маска присутствует, то ничего не меняем.<br />Если присутствует только domain.site.com то дописываем к нему *. чтоб получилось *.domain.site.com<br />Если нет ни *.domain.site.com ни domain.site.com то добавляем маску *.domain.site.com (через точку запятую) в значение этого параметрареестра.<br />Заранее благодарен!</p>]]></content>
			<author>
				<name><![CDATA[SANIOK_AV]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25238</uri>
			</author>
			<updated>2014-09-12T08:14:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=86412#p86412</id>
		</entry>
</feed>
