<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7073</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7073&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Переменная цикла For и имена переменных окружения...».]]></description>
		<lastBuildDate>Mon, 09 Apr 2012 19:34:37 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59074#p59074</link>
			<description><![CDATA[<p>Сам разобрался. В цикле For переменная %%i, а в set и if вызывалась %%I. Оказывается строчные и прописные имена переменных в командном файле различны. Не знал.</p>]]></description>
			<author><![CDATA[null@example.com (Kot_Begimot)]]></author>
			<pubDate>Mon, 09 Apr 2012 19:34:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59074#p59074</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59071#p59071</link>
			<description><![CDATA[<div class="codebox"><pre><code>%PATH:~0,-1%</code></pre></div><p>::извлечет все символы переменной PATH, за исключением 1-го последнего.</p><p>А в этом случае не проходит <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />:</p><div class="codebox"><pre><code>for /l %%i in (1,1,9) do if defined REMOVABLE%%I (
if &quot;!REMOVABLE%%I:~-1,1!&quot;==&quot;\&quot; set REMOVABLE%%I=!REMOVABLE%%I:~0,-1!</code></pre></div><p>set выдает ошибку.</p>]]></description>
			<author><![CDATA[null@example.com (Kot_Begimot)]]></author>
			<pubDate>Mon, 09 Apr 2012 18:26:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59071#p59071</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59066#p59066</link>
			<description><![CDATA[<div class="codebox"><pre><code>for /l %%i in (1,1,9) do if exist !Fixdisk%%i!\filename.ext set sDisk=!Fixdisk%%i! &amp;goto :go
:go</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (!k)]]></author>
			<pubDate>Mon, 09 Apr 2012 17:51:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59066#p59066</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59061#p59061</link>
			<description><![CDATA[<div class="quotebox"><cite>!k пишет:</cite><blockquote><div class="codebox"><pre><code>setlocal enabledelayedexpansion
for /l %%i in (1,1,9) do if exist !Fixdisk%%i!\filename.ext set sDisk=!Fixdisk%%i!
set sDisk</code></pre></div></blockquote></div><p>Здесь цитирование необходимо.<br />А как прервать цикл, чтобы он не крутил до 9, если файл уже нашелся при значении %%i, например там 2 или 3?</p>]]></description>
			<author><![CDATA[null@example.com (Kot_Begimot)]]></author>
			<pubDate>Mon, 09 Apr 2012 17:40:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59061#p59061</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59060#p59060</link>
			<description><![CDATA[<p><span style="color: Green"><strong>Kot_Begimot</strong>, <a href="http://forum.script-coding.com/viewtopic.php?pid=59054#p59054">второй</a> и последний раз говорю:</span><br /></p><div class="quotebox"><blockquote><p><span style="color: Green">Избегайте излишнего цитирования.</span></p></blockquote></div><p><span style="color: Green">Я поправил Ваш пост</span></p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 09 Apr 2012 17:26:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59060#p59060</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59058#p59058</link>
			<description><![CDATA[<p><strong>!k</strong>, супер! То что надо! Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Kot_Begimot)]]></author>
			<pubDate>Mon, 09 Apr 2012 17:20:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59058#p59058</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59056#p59056</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>enabledelayedexpansion</p></blockquote></div><p>а не используете</p><div class="codebox"><pre><code>setlocal enabledelayedexpansion
for /l %%i in (1,1,9) do if exist !Fixdisk%%i!\filename.ext set sDisk=!Fixdisk%%i!
set sDisk</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (!k)]]></author>
			<pubDate>Mon, 09 Apr 2012 16:58:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59056#p59056</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59054#p59054</link>
			<description><![CDATA[<p><span style="color: Green">Избегайте излишнего цитирования. Я поправил Ваш пост.</span></p><div class="quotebox"><cite>Kot_Begimot пишет:</cite><blockquote><p>Только до меня было так сделано, что программа проверяет все логические диски системы и устанавливает следующие переменные в зависимости от типа диска:</p></blockquote></div><p>Вы не дали комментариев по:<br /></p><div class="quotebox"><blockquote><p>Если по условиям задачи допустимо использование «wmic.exe» или «fsutil.exe», то можно и не задавать перечень дисков «ручками».</p></blockquote></div><p>Ибо в этом случае нет нужды устанавливать переменные окружения:<br /></p><div class="codebox"><pre><code>wmic.exe LogicalDisk where &quot;DriveType = &#039;…&#039;&quot;</code></pre></div><div class="quotebox"><cite>Kot_Begimot пишет:</cite><blockquote><p>Надо работать с этими уже установленными переменными окружения.</p></blockquote></div><p>Не надо.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 09 Apr 2012 16:50:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59054#p59054</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59052#p59052</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Для вычислений предназначена форма команды «set /a».</p><p>Подозреваю, что, то, что Вы хотите получить, делается гораздо проще:<br />…</p></blockquote></div><p>Спасибо за ответ. Да можно и так. Только до меня было так сделано, что программа проверяет все логические диски системы и устанавливает следующие переменные в зависимости от типа диска:</p><div class="codebox"><pre><code>set Fixed1=C:
set Fixed2=D:
set Fixed3=E:
...
set Removable1=M:
set Removable2=N:
...
set CDROM1=X:
set CDROM2=Y:</code></pre></div><p>Поэтому нет смысла снова перебирать весь алфавит. Надо работать с этими уже установленными переменными окружения.</p>]]></description>
			<author><![CDATA[null@example.com (Kot_Begimot)]]></author>
			<pubDate>Mon, 09 Apr 2012 16:05:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59052#p59052</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59051#p59051</link>
			<description><![CDATA[<p>Для вычислений предназначена форма команды «set /a».</p><p>Подозреваю, что, то, что Вы хотите получить, делается гораздо проще:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

for %%i in (c d e f g h) do if exist &quot;%%i:\filename.ext&quot; if not defined sDisk set sDisk=%%i:

if defined sDisk (
    echo [%sDisk%]
) else (
    echo Not found
)

endlocal
exit /b 0</code></pre></div><p>Если по условиям задачи допустимо использование «wmic.exe» или «fsutil.exe», то можно и не задавать перечень дисков «ручками».</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 09 Apr 2012 15:47:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59051#p59051</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59050#p59050</link>
			<description><![CDATA[<div class="codebox"><pre><code>for /l %%i in (1,1,9) do if exist %Fixdisk%%%i\filename.ext set %Fixdisk%%i%=%Fixdisk%%i%\</code></pre></div><p>Этот мой код к сожалению не работает, поэтому прошу помощи уважаемых участников форума:</p><p>Вот еще пример. Нормальный вызов переменной:</p><div class="codebox"><pre><code>set Fixdisk1=%Fixdisk2%</code></pre></div><p>так работает</p><p>а как через цикл for, где переменная %%i должна стать частью имени переменной:</p><div class="codebox"><pre><code>set Fixdisk%%i=%Fixdisk%%i+1%</code></pre></div><p>так нет. А как?</p>]]></description>
			<author><![CDATA[null@example.com (Kot_Begimot)]]></author>
			<pubDate>Mon, 09 Apr 2012 15:20:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59050#p59050</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59049#p59049</link>
			<description><![CDATA[<p><span style="color: Green">Я добавил префикс «CMD/BAT: » к заголовку темы и обрамил код <a href="http://forum.script-coding.com/help.php#bbcode">тэгом «code»</a>.</span></p><p>И что?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 09 Apr 2012 15:06:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59049#p59049</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Переменная цикла For и имена переменных окружения...]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59048#p59048</link>
			<description><![CDATA[<p>Есть несколько переменных окружения:<br /></p><div class="codebox"><pre><code>set Fixdisk1=C:
set Fixdisk2=D:
set Fixdisk3=E:
set Fixdisk4=F:
set Fixdisk5=G:
set Fixdisk6=H:
set Fixdisk7=I:
set Fixdisk8=J:
...</code></pre></div><p>и т.д. в зависимости от количества дисков</p><br /><p>Теперь в cmd-командном файле нужно обращаться к именнам переменных через цикл for. Типа:</p><div class="codebox"><pre><code>for /l %%i in (1,1,9) do if exist %Fixdisk%%i%\filename.ext set %Fixdisk%%i%=%Fixdisk%%i%\</code></pre></div><p>Что то типа этого. Только этот мой код, к сожалению, не работает.</p><p>Заранее спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (Kot_Begimot)]]></author>
			<pubDate>Mon, 09 Apr 2012 14:40:42 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59048#p59048</guid>
		</item>
	</channel>
</rss>
