<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Как удалить файл после цикла]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7159</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7159&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Как удалить файл после цикла».]]></description>
		<lastBuildDate>Fri, 27 Apr 2012 19:14:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59799#p59799</link>
			<description><![CDATA[<p>Прошу прощения, немного упустил из виду. Все понял.</p>]]></description>
			<author><![CDATA[null@example.com (Kaede)]]></author>
			<pubDate>Fri, 27 Apr 2012 19:14:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59799#p59799</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59794#p59794</link>
			<description><![CDATA[<p><strong>Kaede</strong>, прочитай внимательно <a href="http://forum.script-coding.com/viewtopic.php?pid=59787#p59787">этот</a> пост. Return лишний.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 Apr 2012 14:38:46 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59794#p59794</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59791#p59791</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Kaede)]]></author>
			<pubDate>Fri, 27 Apr 2012 13:57:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59791#p59791</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59789#p59789</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Fri, 27 Apr 2012 13:14:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59789#p59789</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59787#p59787</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 Apr 2012 13:05:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59787#p59787</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59786#p59786</link>
			<description><![CDATA[<p>Сейчас проверил исключением, после удаления программы, просто FileDelete удаляет файл установщика, а в скрипте после Return нет. Return возвращает в начало скрипта и как только он исполняется 2 раза по идее должен перейти к строке с FileDlete и исполнить ее, но почему то перехода нет.</p>]]></description>
			<author><![CDATA[null@example.com (Kaede)]]></author>
			<pubDate>Fri, 27 Apr 2012 12:51:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59786#p59786</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59785#p59785</link>
			<description><![CDATA[<p>Тогда нужно посмотреть в свойствах файла, не стоит ли галка &quot;read-only&quot;. Ну и FilePattern проверить.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 Apr 2012 12:41:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59785#p59785</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59783#p59783</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Kaede)]]></author>
			<pubDate>Fri, 27 Apr 2012 12:27:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59783#p59783</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59781#p59781</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Fri, 27 Apr 2012 11:45:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59781#p59781</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59780#p59780</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 27 Apr 2012 11:42:51 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59780#p59780</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Как удалить файл после цикла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=59779#p59779</link>
			<description><![CDATA[<p>Тестирую программы(запуск, установка, удаление), написал скрипт:<br /></p><div class="codebox"><pre><code>#NoTrayIcon
Loop 2
{
...
}
Return</code></pre></div><p>Исполняется нормально, но как удалить установочный файл после этого цикла? Пробовал так: FileDelete ,C:\Test\*.exe, не удаляется, если записать в цикл, то повторно не смогу установить так как не будет установочного файла.</p>]]></description>
			<author><![CDATA[null@example.com (Kaede)]]></author>
			<pubDate>Fri, 27 Apr 2012 10:29:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=59779#p59779</guid>
		</item>
	</channel>
</rss>
