<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK:  Параметры командной строки и оператор IF]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7145</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7145&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK:  Параметры командной строки и оператор IF».]]></description>
		<lastBuildDate>Tue, 24 Apr 2012 16:08:27 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK:  Параметры командной строки и оператор IF]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59697#p59697</link>
			<description><![CDATA[<p>Уговорили <img src="//forum.script-coding.com/img/smilies/wink.png" width="15" height="15" /><br />Вопрос решён.</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Tue, 24 Apr 2012 16:08:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59697#p59697</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Параметры командной строки и оператор IF]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59696#p59696</link>
			<description><![CDATA[<p>Не надо путать содержимое переменной и содержимое переменной, <strong>чье имя</strong> содержится в указанной тобой переменной (это как раз случай (%0%) ) <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Для понимания-2:<br /></p><div class="codebox"><pre><code>a = b
b = 1
if a
MsgBox % &quot;a  = &quot; a ; работает
if (a)
MsgBox % a &quot; = &quot; %a% ; работает
if (%a%)
MsgBox % a &quot; = &quot; %a% ; работает
b = 0
if (%a%)
MsgBox % a &quot; = &quot; %a% ; не работает</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Tue, 24 Apr 2012 16:03:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59696#p59696</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Параметры командной строки и оператор IF]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59694#p59694</link>
			<description><![CDATA[<p>Спасибо, код понятен без <strong>; ниже — для понимания.</strong>, но так и остался вопрос про if (%0%) - так же не сработает верно?</p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Tue, 24 Apr 2012 14:56:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59694#p59694</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK:  Параметры командной строки и оператор IF]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59689#p59689</link>
			<description><![CDATA[<div class="codebox"><pre><code>If %0%
{
    args := []
    Loop %0%
       args[A_Index] := %A_Index%
}
; ниже — для понимания.

For i, arg in args
    o .= &quot;arg[&quot; i &quot;] = &quot; arg &quot;`n&quot;
MsgBox % o
If o
    Exitapp
Run %A_ScriptFullPath% 123 345 678</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (creature.ws)]]></author>
			<pubDate>Tue, 24 Apr 2012 12:46:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59689#p59689</guid>
		</item>
		<item>
			<title><![CDATA[AHK:  Параметры командной строки и оператор IF]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59688#p59688</link>
			<description><![CDATA[<p>Я тут решил использовать ком. параметры для скрипта, но столкнулся с проблемой, а именно странно работает <strong>if</strong> для %0%, %1%, %2%..... ну и т.д. </p><p>Прочитав много документации я нашёл вот такой выход <br />(Обязательно писать <strong>If Param0 != 1</strong>, а не<strong> If (Param0 != 1)</strong> ) </p><div class="codebox"><pre><code>#include C:\AHK\Include\PathUses.ahk
Menu, Tray, Icon, Shell32.dll, 168
Param0 = %0% 
If Param0 != 1
  {
   msgbox % 0+16 
         ,% &quot;Ошибка&quot;
         ,% &quot;1. Не верно задан параметр - ПУТЬ ПОИСКА&quot; cEscLF &quot;2. Задано больше одного параметра&quot; cEsc2LF &quot;Пример запуска: fndwav.exe с:\&quot; 
         ,% 15 
   ExitApp
  }
vPath = %1%
; и т.д. ..............</code></pre></div><p>т.е. вариант </p><div class="codebox"><pre><code>If %0% != 1 
; или
If (%0% != 1)</code></pre></div><p>работают не верно.<br />В справке (русской) я вычитал (Автор статьи - <strong>Androgen Belkin</strong>) </p><div class="quotebox"><blockquote><p>Далее, обращаю ваше особое внимание на то, что в AutoHotkey синтаксис обработки принимаемых скриптом параметров отличается от синтаксиса, принятого для других команд и операций. Я их оформил в виде примечаний, чтобы на них легче было ссылаться: </p><p>Примечание 1: в переменной 0 (а это, как ни странно - переменная) содержится количество полученных скриптом параметров. <br />Примечание 2: переменные 1, 2, 3 и т.д. - зарезервированные переменные, содержащие в себе получаемые скриптом параметры. <br />Примечание 3: для получения значения параметра используется выражение присвоения (например, Param := %2%). В правой части такого выражения обычно не должно быть знаков процента, но здесь они есть, и являются просто частью имени параметра. <br /><strong>Примечание 4</strong>: в справке указано, что переменные с именем в виде числа (см. Примечание 1 и 2) не могут использоваться в выражениях с операторами (такими как, например, OR, AND, NOT). Но я обнаружил, что могут, но с &quot;наоборотным&quot; синтаксисом. Например, обычно пишут так: <br />If ( param1 = &quot;orange&quot; AND param2 = &quot;apple&quot; )</p><p>а в случае с принимаемыми параметрами, я пишу так: <br />If ( %1% = orange AND %2% = apple )</p></blockquote></div><p>т.е. важно было <strong>Примечание 4</strong> и вот ещё </p><div class="quotebox"><blockquote><p>Возможно, это просто <strong>глюк AutoHotkey</strong>, а может где-то в справке так и написано, просто я не нашел, а может и вовсе я что-то не так понял. Однако в таком виде все работает. Альтернативой указанному использованию параметров в выражениях является присвоение содержимого &quot;числовых&quot; переменных, обычной &quot;буквенной&quot; переменной, и использование в выражениях уже этой переменной. Так получится чуть длиннее, но зато сохранится привычный синтаксис.</p></blockquote></div><p>так просвяти как правильно обрабатывать параметры командой строки, что бы быть уверенным что всё сработает.</p><p>Если <strong>%1%</strong>&nbsp; содержит что то типа <strong>Сашка_привет</strong>, всё нормально,&nbsp; а если он содержит <strong>C:</strong> или <strong>С:\</strong> то ошибка.<br />AHK ругается на &quot;:&quot; или &quot;\&quot; или &quot;/&quot; на&nbsp; остальные символы я не стал проверять, но ругается если написать <strong>vPath := %1%</strong>, а не <strong>vPath = %1%</strong></p>]]></description>
			<author><![CDATA[null@example.com (Indomito)]]></author>
			<pubDate>Tue, 24 Apr 2012 12:28:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59688#p59688</guid>
		</item>
	</channel>
</rss>
