<?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=10973&amp;type=atom" />
	<updated>2015-09-24T15:23:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10973</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97668#p97668" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Galogenid]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30829</uri>
			</author>
			<updated>2015-09-24T15:23:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97668#p97668</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97667#p97667" />
			<content type="html"><![CDATA[<p>1) <strong>Galogenid</strong>, а что, если за время между проверками появилось несколько новых файлов?<br />2) А зачем определять новизну файлов по их имени, когда есть атрибуты &quot;Создан&quot;, &quot;Изменён&quot;?</p><p>Обобщая вышесказанное... Может проще периодически проверять файлы в папке по дате создания и добавлять их в список для обработки? А по мере обработки убирать их из списка. При этом в какой-нибудь переменной держать дату, старше которой файлы считать обработанными.</p><p>Можно проще, если Вас это устроит: все обработанные файлы перекидывать в другую папку, чтобы в первичной папке не прочёсывать каждый раз все файлы.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2015-09-24T14:52:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97667#p97667</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97665#p97665" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2015-09-24T14:35:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97665#p97665</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97663#p97663" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[yalanne]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32850</uri>
			</author>
			<updated>2015-09-24T12:10:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97663#p97663</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97662#p97662" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Nikva]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27416</uri>
			</author>
			<updated>2015-09-24T12:03:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97662#p97662</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97661#p97661" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[yalanne]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32850</uri>
			</author>
			<updated>2015-09-24T11:37:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97661#p97661</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97660#p97660" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Nikva]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27416</uri>
			</author>
			<updated>2015-09-24T11:08:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97660#p97660</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Переименование последнего файла]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=97658#p97658" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Galogenid]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30829</uri>
			</author>
			<updated>2015-09-24T05:49:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=97658#p97658</id>
		</entry>
</feed>
