<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Как удалить файл после цикла]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7159&amp;type=atom" />
	<updated>2012-04-27T19:14:48Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7159</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59799#p59799" />
			<content type="html"><![CDATA[<p>Прошу прощения, немного упустил из виду. Все понял.</p>]]></content>
			<author>
				<name><![CDATA[Kaede]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27929</uri>
			</author>
			<updated>2012-04-27T19:14:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59799#p59799</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59794#p59794" />
			<content type="html"><![CDATA[<p><strong>Kaede</strong>, прочитай внимательно <a href="http://forum.script-coding.com/viewtopic.php?pid=59787#p59787">этот</a> пост. Return лишний.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-04-27T14:38:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59794#p59794</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59791#p59791" />
			<content type="html"><![CDATA[<p>Так было бы справедливо, если бы не надо было устанавливать, запускать, удалять, несколько раз. В C:\Test\*.exe находится установочный файл, из которого программа устанавливается в C:\Dorst\*.exe. Если FileDelete для C:\Test\*.exe будет в цикле, повторной автоматической установки уже не будет, так как не будет файла установщика. Поэтому и вынос за цикл. Следом за завершением процесса следует деинсталяция C:\Dorst\*.exe:<br /></p><div class="codebox"><pre><code>Run, C:\WINDOWS\system32\msiexec.exe /x {...}</code></pre></div><p>Попробовал убрать только цикл: <br /></p><div class="codebox"><pre><code>Loop 2
{
}
Return</code></pre></div><p>Устанавливается, запускается, удаляется, и что интересное установщик тоже, на ура, почему с циклом не так, не понятно.</p>]]></content>
			<author>
				<name><![CDATA[Kaede]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27929</uri>
			</author>
			<updated>2012-04-27T13:57:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59791#p59791</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59789#p59789" />
			<content type="html"><![CDATA[<p>Что-то я в скрипте не наблюдаю комманды <strong>FileDelete</strong>. Зачем её выносить куда-то, если её место в цикле (ИМХО <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />) ?<br /></p><div class="codebox"><pre><code>dir = C:\Dorst\
Loop, %dir%*.exe
{
   Process, Exist, %A_LoopFileName%
   if ErrorLevel
   {
      WinClose, ahk_pid ErrorLevel,,2
      Process, Exist, %A_LoopFileName%
      if ErrorLevel
         Process, Close, %A_LoopFileName%
		 Process, WaitClose, %A_LoopFileName%, 2
   }
   FileDelete, %dir%%A_LoopFileName%
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-27T13:14:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59789#p59789</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59787#p59787" />
			<content type="html"><![CDATA[<p>По всей видимости, ты плохо понимаешь действие команды <a href="http://www.autohotkey.com/docs/commands/Return.htm">Return</a>.</p><div class="quotebox"><blockquote><p>If there is no caller to which to return, Return will do an <a href="http://www.autohotkey.com/docs/commands/Exit.htm">Exit</a> instead.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-04-27T13:05:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59787#p59787</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59786#p59786" />
			<content type="html"><![CDATA[<p>Сейчас проверил исключением, после удаления программы, просто FileDelete удаляет файл установщика, а в скрипте после Return нет. Return возвращает в начало скрипта и как только он исполняется 2 раза по идее должен перейти к строке с FileDlete и исполнить ее, но почему то перехода нет.</p>]]></content>
			<author>
				<name><![CDATA[Kaede]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27929</uri>
			</author>
			<updated>2012-04-27T12:51:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59786#p59786</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59785#p59785" />
			<content type="html"><![CDATA[<p>Тогда нужно посмотреть в свойствах файла, не стоит ли галка &quot;read-only&quot;. Ну и FilePattern проверить.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-04-27T12:41:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59785#p59785</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59783#p59783" />
			<content type="html"><![CDATA[<p>Вы меня наверное неверно поняли. Алгоритм действия отбросив детали таков:<br />1.Установка <br />2.Запуск<br />3.Удаление<br />4.Удаление установщика<br />Внутри цикла, у меня есть, цикл завершения процесса:<br /></p><div class="codebox"><pre><code>Loop, C:\Dorst\*.exe
{
   Process, Exist, %A_LoopFileName%
   if ErrorLevel
   {
      WinClose, ahk_pid ErrorLevel,,2
      Process, Exist, %A_LoopFileName%
      if ErrorLevel
         Process, Close, %A_LoopFileName%
   }
}</code></pre></div><p>Что получается, я завершаю процесс, и потом удаляю саму программу через ее инсталлятор. В процессах ее уже нет. Теперь мне надо удалить сам файл из которого шла установка. Сам файл спокойно удаляется, но не через FileDelete.</p>]]></content>
			<author>
				<name><![CDATA[Kaede]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27929</uri>
			</author>
			<updated>2012-04-27T12:27:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59783#p59783</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59781#p59781" />
			<content type="html"><![CDATA[<p>А в чем разница, в цикле удаление или после него? Раз в цикле нормально удаляет, а после - нет, значит или до этой команды очередь не доходит, или после цикла EXE установщика остается в памяти, и препятствует удалению.</p><p>UPD: <strong>teadrinker</strong> уже написал решение, хотя и описанный мной 1ый вариант проблемы часто имеет место быть <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Irbis]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27384</uri>
			</author>
			<updated>2012-04-27T11:45:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59781#p59781</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59780#p59780" />
			<content type="html"><![CDATA[<p>Если файл не удаляется, значит он ещё занят, и нужно ожидать, когда его процесс завершится. Для этого запускать его следует так:</p><div class="codebox"><pre><code>Run, MyProg.exe,,, PID</code></pre></div><p>Тогда в переменной PID сохранится идентификатор его процесса. После твоего цикла следует выполнить такой:</p><div class="codebox"><pre><code>Loop
{
   Sleep, 1000
   Process, Exist, PID
   if !ErrorLevel
   {
      FileDelete, FilePattern
      break
   }
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-04-27T11:42:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59780#p59780</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Как удалить файл после цикла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=59779#p59779" />
			<content type="html"><![CDATA[<p>Тестирую программы(запуск, установка, удаление), написал скрипт:<br /></p><div class="codebox"><pre><code>#NoTrayIcon
Loop 2
{
...
}
Return</code></pre></div><p>Исполняется нормально, но как удалить установочный файл после этого цикла? Пробовал так: FileDelete ,C:\Test\*.exe, не удаляется, если записать в цикл, то повторно не смогу установить так как не будет установочного файла.</p>]]></content>
			<author>
				<name><![CDATA[Kaede]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27929</uri>
			</author>
			<updated>2012-04-27T10:29:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=59779#p59779</id>
		</entry>
</feed>
