<?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=10973</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10973&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Переименование последнего файла».]]></description>
		<lastBuildDate>Thu, 24 Sep 2015 15:23:45 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97668#p97668</link>
			<description><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>1) <strong>Galogenid</strong>, а что, если за время между проверками появилось несколько новых файлов?<br />2) А зачем определять новизну файлов по их имени, когда есть атрибуты &quot;Создан&quot;, &quot;Изменён&quot;?<br />3) Обобщая вышесказанное... Может проще периодически проверять файлы в папке по дате создания и добавлять их в список для обработки? А по мере обработки убирать их из списка. При этом в какой-нибудь переменной держать дату, старше которой файлы считать обработанными.<br />4) Можно проще, если Вас это устроит: все обработанные файлы перекидывать в другую папку, чтобы в первичной папке не прочёсывать каждый раз все файлы.</p></blockquote></div><p> </p><p>Отвечу обо всём по порядку.<br />1. Новый файл появляется с интервалом 1-10 минут, то есть сразу так молниеносно не появится.<br />2. Я просто предположил сортировать по имени, а про эти два атрибута как-то не подумал вовсе.<br />3. Уже думал над подобным решением проблемы, но не хотелось бы цикличный скрипт постоянно работающий.<br />4. Стоит ограничение на максимальное количество файлов - 30 штук. Сервер не слабый, посему думаю в данном случае никаких проблем не будет. (=</p><p>Теперь по поводу решений.</p><p>Решение от товарища <strong>Nikva</strong>, идеально работает. Тестил только что, вроде ошибок никаких нет. За что огромная благодарность данному пользователю.</p><p>По поводу второго решения, от пользователя <strong>yalanne</strong>, есть проблема. При активации любой из комбинаций, выдает окно:<br /><span class="postimg"><img src="http://fnx0.ru/files/screens/2015-09-24_201052.png" alt="http://fnx0.ru/files/screens/2015-09-24_201052.png" /></span></p><p>И такое же аналогичное другой комбинации. Посему, будем пользовать первое предоставленное решение в теме. Ну и отдельное спасибо за предоставленные ссылки и описание. </p><p><em>Спасибо всем отписавшимся в теме. Проблема решена!</em></p>]]></description>
			<author><![CDATA[null@example.com (Galogenid)]]></author>
			<pubDate>Thu, 24 Sep 2015 15:23:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97668#p97668</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97667#p97667</link>
			<description><![CDATA[<p>1) <strong>Galogenid</strong>, а что, если за время между проверками появилось несколько новых файлов?<br />2) А зачем определять новизну файлов по их имени, когда есть атрибуты &quot;Создан&quot;, &quot;Изменён&quot;?</p><p>Обобщая вышесказанное... Может проще периодически проверять файлы в папке по дате создания и добавлять их в список для обработки? А по мере обработки убирать их из списка. При этом в какой-нибудь переменной держать дату, старше которой файлы считать обработанными.</p><p>Можно проще, если Вас это устроит: все обработанные файлы перекидывать в другую папку, чтобы в первичной папке не прочёсывать каждый раз все файлы.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Thu, 24 Sep 2015 14:52:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97667#p97667</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97665#p97665</link>
			<description><![CDATA[<p>Можно сделать вотчфолдер:<br /><a href="http://forum.script-coding.com/viewtopic.php?pid=83808#p83808">http://forum.script-coding.com/viewtopi … 808#p83808</a></p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 24 Sep 2015 14:35:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97665#p97665</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97663#p97663</link>
			<description><![CDATA[<p>* исправил немного.<br /><strong>Nikva</strong>, Это RegExMatch, в кавычках указывается NeedleRegEx(шаблон). А насчет вики не знаю, я этот способ в каком то скрипте позаимствовал.</p><p>То что в цитате там следующие:<br /><span class="bbu">^</span> - Означает что поиск будет с начала строки.<br /><span class="bbu">Word </span> - означает то что имя хоть как начинаться должно с этого.<br /><span class="bbu">\d{4,4}</span> - означает что 4 любые цифры должны быть подряд.<br /><span class="bbu">-</span> после 4х цифр должно быть тире.</p><p>цифры,тире...цифры,тире.<br /><span class="bbu">$</span> - конец строки.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Thu, 24 Sep 2015 12:10:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97663#p97663</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97662#p97662</link>
			<description><![CDATA[<p><strong>yalanne</strong><br /></p><div class="codebox"><pre><code>if (lastFile ~= &quot;^Word \d{4,4}-\d{2,2}-\d{2,2} \d{2,2}-\d{2,2}-\d{2,2}-\d{3,3}$&quot;)</code></pre></div><p>А где можно почитать, что это за строчка?</p>]]></description>
			<author><![CDATA[null@example.com (Nikva)]]></author>
			<pubDate>Thu, 24 Sep 2015 12:03:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97662#p97662</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97661#p97661</link>
			<description><![CDATA[<div class="codebox"><pre><code>path := A_ScriptDir &quot;\dir1&quot;
ext := &quot;.doc&quot;
!1::
!2::
lastFile :=&quot;&quot;
Loop, Files,%path%\*%ext%
    RegExMatch(A_LoopFileName,&quot;(^Word \d{4,4}-\d{2,2}-\d{2,2} \d{2,2}-\d{2,2}-\d{2,2}-\d{3,3}.*)\&quot; ext,_t) and (lastFile:=_t1)
if lastFile and (lastFile ~= &quot;(files|email)$&quot;)
    Msgbox, 0x10,Информация,% &quot;У последнего файла &quot;&quot;&quot; lastFile ext &quot;&quot;&quot; уже есть окончание!&quot;
Else if lastFile and !(lastFile ~= &quot;(files|email)$&quot;)
{
    FileMove %path%\%lastFile%%ext%,% path &quot;\&quot; lastFile &quot; &quot; ((A_ThisHotkey = &quot;!1&quot;) ? &quot;files&quot; : &quot;email&quot;) ext
    Msgbox, 0x40,Информация,% &quot;Файл`t`t&quot;&quot;&quot; lastFile ext &quot;&quot;&quot;`nПеременован в`t&quot;&quot;&quot; lastFile &quot; &quot; ((A_ThisHotkey = &quot;!1&quot;) ? &quot;files&quot; : &quot;email&quot;) ext &quot;&quot;&quot;&quot;
}
return</code></pre></div><p>Исправил если что.</p>]]></description>
			<author><![CDATA[null@example.com (yalanne)]]></author>
			<pubDate>Thu, 24 Sep 2015 11:37:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97661#p97661</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97660#p97660</link>
			<description><![CDATA[<div class="codebox"><pre><code>!1::
!2::
Name := &quot;&quot;
SetWorkingDir, %A_ScriptDir%\dir1\
Loop, *.*, 1
Name := Name A_LoopFileTimeModified &quot;`t&quot; A_LoopFileName &quot;`n&quot;
Sort, Name, r ; Сортировать по дате.
Loop, parse, Name, `n
{
StringSplit, Name, A_LoopField, %A_Tab%
StringReplace, Name, Name2,`.doc
IfInString, Name2, files
    Return
IfInString, Name2, email
    Return
FileMove, %Name2%, % Name A_Space (A_ThisHotkey = &quot;!1&quot; ? &quot;files&quot; : &quot;email&quot;) &quot;.doc&quot;
Break
}
Return </code></pre></div><p><a href="http://www.script-coding.com/AutoHotkey/LoopFilesFolders.html">Loop</a> считывает все названия файлов (и их время редактирования) в переменную.<br /><a href="http://ahkscript.org/docs/commands/Sort.htm">Sort</a> сортирует названия, так что-бы последняя редактируемое имя стало первым.<br /><a href="http://www.script-coding.com/AutoHotkey/LoopParse.html">Loop, parse</a> считывает построчно, поскольку интересует только первая, цикл повторяется 1 раз.<br /><a href="http://ahkscript.org/docs/commands/StringSplit.htm">StringSplit</a> разделяет переменную, так что-бы имя и дата редактирования были отдельно.<br /><a href="http://www.script-coding.com/AutoHotkey/IfInString.html">IfInString</a> проверяет есть ли в имени файла текста который мы добавляем.<br /><a href="http://www.script-coding.com/AutoHotkey/FileMove.html">FileMove</a> переименовывает файл.</p>]]></description>
			<author><![CDATA[null@example.com (Nikva)]]></author>
			<pubDate>Thu, 24 Sep 2015 11:08:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97660#p97660</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Переименование последнего файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=97658#p97658</link>
			<description><![CDATA[<p>Приветствую, господа. В AHK любитель, посему некоторые дебри для меня ещё пока недоступны. Поиск по форуму/гуглу особых результатов не принес, потому решил обратиться к здешним скриптёрам.</p><p>Проблема такова: Существует папка dir1. В этой папке, каждые несколько минут создаются файлы с расширением &quot;.doc&quot;. Формат имени: &quot;Word YYYY-MM-DD HH-mm-SS-000.doc&quot; &lt;- последнее не знаю как назвать, там три цифры всегда, миллисекунды, как я понимаю, либо кадры. Получается каждый файл имеет примерное название: &quot;Word 2015-09-24 10-44-35-766.doc&quot;</p><p>И нужен скрипт, который по нажатию какой-либо комбинации, будет оглядывать папку dir1 и последне-созданному файлу, в его имя добавлять какой-либо текст. </p><p>Например:<br />* При нажатии Alt+1 - files<br />* При нажатии Alt+2 - email</p><p>То есть, для примера, конечный результат будет выглядеть так: &quot;Word 2015-09-24 10-44-35-766 email.doc&quot;. Надеюсь разъяснил проблему, буду очень благодарен за помощь.</p>]]></description>
			<author><![CDATA[null@example.com (Galogenid)]]></author>
			<pubDate>Thu, 24 Sep 2015 05:49:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=97658#p97658</guid>
		</item>
	</channel>
</rss>
