<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: парсинг имен файлов с датой, перенос старых]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=5589&amp;type=atom" />
	<updated>2011-03-18T08:53:54Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=5589</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46293#p46293" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong>. <br />Правильно оформленный псевдокод залог быстрой реализации на реальном языке. <br />Основной упор в моем сообщении был не в том чтобы иметь отсортированный список (хотя это тоже очень важно), но в том, чтобы <em>перенести все файлы, кроме последнего</em>. <br />Судя по последним сообщениям - Ваш код работает. Поэтому дискуссия уже не имеет значения.</p>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-03-18T08:53:54Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46293#p46293</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46240#p46240" />
			<content type="html"><![CDATA[<p>Ого, какая дискуссия развернулась <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <br />Спасибо всем!<br />Код от Xameleon в #10 работает так как мне нужно <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-03-17T03:16:44Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46240#p46240</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46234#p46234" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);

function SORT_BY_DATE(A , B)
{
    var a = A.match(/[\d\.]+/)[0].replace(/(\d{2})\.(\d{2})\.(\d{4})/, &quot;$3$2$1&quot;),
    b = B.match(/[\d\.]+/)[0].replace(/(\d{2})\.(\d{2})\.(\d{4})/, &quot;$3$2$1&quot;);
    return a&gt;b;
}

function FileList(Re)
{
    var Result=[], os = new ActiveXObject(&quot;WScript.Shell&quot;), 
    fls = new Enumerator(fso.getFolder(os.CurrentDirectory + &quot;\\&quot;).Files);    
    for (;!fls.atEnd();fls.moveNext()) 
    if (Re.test(fls.item())) Result.push(fls.item()+&quot;&quot;);
    return Result;
}

Array.prototype.move = function (path)
{
    for (var i=0; i&lt;this.length; i++)
    fso.MoveFile(this[i], path+&quot;\\&quot;+this[i].split(&quot;\\&quot;).pop());
}

FileList(/сборы/i).sort(SORT_BY_DATE).slice(0,-1).move(&quot;Folder&quot;);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2011-03-16T19:54:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46234#p46234</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46232#p46232" />
			<content type="html"><![CDATA[<p>Проще на JS написать:)</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2011-03-16T19:04:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46232#p46232</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46231#p46231" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>Xameleon</strong>, только на NTFS (там они сортируются в MFT изначально). Но, например, для FAT32:</p></blockquote></div><p>Ах вон оно как. На FAT не работал, поэтому не ожидал. Тогда стоит загнать весь массив файлов в Recordset и упорядочить. )</p><p>Спасибо за информацию.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2011-03-16T18:28:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46231#p46231</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46227#p46227" />
			<content type="html"><![CDATA[<p>Мне кажется такой вариант должен работать и на FAT(к тому же будет работать если &quot;внезапно&quot; однотипных файлов более двух):<br /></p><div class="codebox"><pre><code>&#039; VB Script Document
Option Explicit
Dim MonitorDir, OutInfo, OutCoal, OutTax
MonitorDir = &quot;c:\aScripts\vbs\script-coding_01\In\&quot;
OutInfo = &quot;c:\aScripts\vbs\script-coding_01\Out\Информация\&quot;
OutCoal = &quot;c:\aScripts\vbs\script-coding_01\Out\Уголь\&quot;
OutTax = &quot;c:\aScripts\vbs\script-coding_01\Out\Сборы\&quot;

chkFolder OutInfo
chkFolder OutCoal
chkFolder OutTax

Dim tmplInfo, tmplCoal, tmplTax
tmplInfo = &quot;Прочая информация&quot;
tmplCoal = &quot;Информация по углю&quot;
tmplTax = &quot;Сборы на&quot;

Dim dicInfo, dicCoal, dicTax
Set dicInfo = CreateObject(&quot;Scripting.Dictionary&quot;)
Set dicCoal = CreateObject(&quot;Scripting.Dictionary&quot;)
Set dicTax = CreateObject(&quot;Scripting.Dictionary&quot;)

Dim fso, WshShell
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set WshShell = WScript.CreateObject(&quot;WScript.Shell&quot;)

Dim folder, file
If fso.FolderExists(MonitorDir) Then
  Set folder = fso.GetFolder(MonitorDir)
 Else
  wscript.echo &quot;Исходный каталог задан неверно!&quot;
  wscript.quit
End If

Dim prefix, data
For Each file In folder.files
 prefix = trim(left(file.name,len(file.name) - 14))
 data = left(trim(right(file.name, 14)),10)
 Select Case prefix
  Case tmplInfo
   dicInfo.add data, file.name
  Case tmplCoal
   dicCoal.add  data, file.name
  Case tmplTax
   dicTax.add  data, file.name
 End Select
Next

Dim arrTMP, i, lastData

If dicInfo.Count &gt; 1 Then  chkFiles dicInfo, OutInfo
If dicCoal.Count &gt; 1 Then chkFiles dicCoal, OutCoal
If dicTax.Count &gt; 1 Then  chkFiles dicTax, OutTax

Set fso = Nothing
Set WshShell = Nothing

Sub chkFiles(Dic, ToDir)
 arrTMP = Dic.Keys
 lastData = vbNullString
 For i = lBound(arrTMP) To uBound(arrTMP)
  If len(lastData) = 0 Then lastData = arrTMP(i) &#039;первый проход
  If cDate(lastData) &lt; cDate(arrTMP(i)) Then
    fso.GetFile(fso.BuildPath(MonitorDir,Dic.Item(lastData))).Move ToDir
    lastData = arrTMP(i)
   elseif cDate(lastData) &gt; cDate(arrTMP(i)) Then
    fso.GetFile(fso.BuildPath(MonitorDir,Dic.Item(arrTMP(i)))).Move ToDir
  End If
 Next
End Sub

&#039;##############################################################################
&#039;########            проверка-создание дерева каталогов              ##########
&#039;##############################################################################
&#039; 1/2
Dim s_chkPath : s_chkPath = &quot;&quot;
Sub chkFolder(s_path) &#039; проверка существования файла(логфайла, например)
 Dim s_fso, s_a
 Set s_fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
 If Not s_fso.FolderExists(s_path) Then &#039; если папка не существует
   If StrComp(right(s_path,1),&quot;\&quot;) = 0 Then &#039; папка с пустым именем нам не нужна :)
     s_chkPath = left(s_path, len(s_path) - 1)
    Else
     s_chkPath = s_path
   End If
   &#039; разбиваем путь на состовляющие
   Dim s_arrFolderPath(), s_regEx, s_Match, s_Matches   &#039; Create variable.
   Set s_regEx = New RegExp   &#039; Create regular expression.
   s_regEx.Pattern = &quot;(\\){1}?&quot;   &#039; Set pattern.
   s_regEx.Global = True   &#039; Set global applicability.
   Set s_Matches = s_regEx.Execute(s_path)   &#039; Execute search.
   Redim s_arrFolderPath(s_Matches.count)
   s_chkPath = s_fso.BuildPath (s_chkPath,&quot;&quot;)
   wscript.echo &quot;проверяемый путь =&gt; &quot; &amp; s_path
   Call MkFldrTree(s_arrFolderPath, s_fso.BuildPath(s_chkPath,&quot;&quot;), 0)
 End If
 Set s_a = Nothing
 Set s_fso = Nothing
End Sub
&#039; 2/2
Sub MkFldrTree(Byref s_arr(), s_path2chk, s_fi) &#039; формирование дерева каталогов
 &#039;wscript.echo fi
 Dim s_fso
 Set s_fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
 If s_fso.FolderExists(s_path2chk) Then &#039; если полученный путь существует...
  If StrComp(s_path2chk, s_chkPath, vbTextCompare) &lt;&gt; 0 Then
    Dim s_fi2
    For s_fi2 = s_fi - 1 To 0 step - 1
     wscript.echo &quot;создаю папку: &quot; &amp; s_path2chk &amp; &quot;\&quot; &amp; s_arr(s_fi2)
     s_fso.CreateFolder s_path2chk &amp; &quot;\&quot; &amp; s_arr(s_fi2)
     s_path2chk = s_path2chk &amp; &quot;\&quot; &amp; s_arr(s_fi2)
    Next
    wscript.echo &quot;done&quot;
  End If
 Else &#039; если полученный путь НЕ существует...
  wscript.echo s_path2chk &amp; &quot; - не найдена&quot;
  &#039; укорачиваем путь на один уровень
  s_arr(s_fi) = Right(s_path2chk, Len(s_path2chk)-InStrRev(s_path2chk, &quot;\&quot;, -1, vbTextCompare))
  s_path2chk = Left(s_path2chk, InStrRev(s_path2chk, &quot;\&quot;, -1, vbTextCompare) - 1)
  s_fi = s_fi + 1
  Call MkFldrTree(s_arr, s_path2chk, s_fi)
 End If
 Set s_fso = Nothing
End Sub
&#039;##############################################################################</code></pre></div><p>Для некоторой универсальности для каждого из трёх типов документов архивная папка файлов задаётся отдельно.<br />Вывод процесса в лог-файл не делал(рутина, не интересно <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />). <br />Если папок архивных не существует, то они будут созданы(в оригинале это была заготовка под текстовый файл, но и с папками жить будет). Правда предполагается, что права на запись в папке содержащей каталог архивных папок у пользователя запускающего скрипт имеются(обработки отказа в доступе нет).<br />Если исходной папки не существует - сообщение в консоль и завершение работы скрипта.<br />Подозреваю что при отличной от русской локали(т.е. формат даты не dd.mm.yyyy) сравнение дат будет некорректно - можно и это учесть, просто больше писать прийдётся.</p>]]></content>
			<author>
				<name><![CDATA[BeS Yara]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25643</uri>
			</author>
			<updated>2011-03-16T17:02:09Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46227#p46227</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46219#p46219" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>…FileSystemObject всегда возвращает файлы в алфавитном порядке.</p></blockquote></div><p><strong>Xameleon</strong>, только на NTFS (там они сортируются в MFT изначально). Но, например, для FAT32:<br /></p><div class="codebox"><pre><code>&amp;#9556;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552; H:\0056 &amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9572;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9552;&amp;#9559;
&amp;#9553;и         Имя          &amp;#9474;Размер&amp;#9474;  Дата  &amp;#9474;Время&amp;#9553;
&amp;#9553;..                     &amp;#9474; Вверх&amp;#9474;16.03.11&amp;#9474;16:51&amp;#9553;
&amp;#9553;0001                vbs&amp;#9474;   154&amp;#9474;16.03.11&amp;#9474;16:53&amp;#9553;
&amp;#9553;aaaa                txt&amp;#9474;     0&amp;#9474;16.03.11&amp;#9474;16:52&amp;#9553;
&amp;#9553;bbbb                txt&amp;#9474;     0&amp;#9474;16.03.11&amp;#9474;16:51&amp;#9553;
&amp;#9553;                       &amp;#9474;      &amp;#9474;        &amp;#9474;     &amp;#9553;</code></pre></div><div class="codebox"><pre><code>For Each objFile In WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;).GetFolder(&quot;H:\0056&quot;).Files
    WScript.Echo objFile.Name
Next</code></pre></div><div class="codebox"><pre><code>H:\0056&gt;cscript.exe //nologo 0001.vbs
bbbb.txt
aaaa.txt
0001.vbs</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-03-16T13:54:03Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46219#p46219</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46211#p46211" />
			<content type="html"><![CDATA[<p><strong>2 Rumata:</strong> Ну от псевдокода до рабочего кода далеко. А работать должно уже сейчас. ) А в принципе я как раз так и сделал. FileSystemObject всегда возвращает файлы в алфавитном порядке. Этим я и воспользовался для выборки наиболее &quot;свежего&quot; файла.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2011-03-16T12:28:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46211#p46211</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46210#p46210" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>Вот такой вот вариант )</p></blockquote></div><p>А если составить список всех файлов вида &quot;категория дата.pdf&quot; и переместить все кроме последнего в архивный каталог? Псевдокод:<br /></p><div class="codebox"><pre><code>files = dirlist(&quot;Информация по углю*.pdf&quot;, SORT_BY_MDATE)
n = files.length - 2
for each i = 0 .. n
    f = files[i]
    f.moveTo(targetDir)
next</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2011-03-16T12:08:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46210#p46210</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46198#p46198" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>Option Explicit

Const ForAppending = 8
Const ForWriting = 2
Dim FileSystemObject
Dim Dictionary
Dim Folder
Dim File
Dim LogFile
Dim PreviousFile
Dim ScriptPath
Dim FullArchivePath

CheckHost

Set Dictionary = CreateObject(&quot;Scripting.Dictionary&quot;)
&#039;---- настройки
Const FolderPath = &quot;D:\f\test&quot;

Dictionary(&quot;&quot;) = &quot;D:\f\0&quot;
Dictionary(&quot;Информация по углю&quot;) = &quot;D:\f\Уголь&quot;
Dictionary(&quot;Сборы на&quot;) = &quot;D:\f\Сборы&quot;
Dictionary(&quot;Прочая информация&quot;) = &quot;D:\f\Информация&quot;
&#039;---- настройки

Set FileSystemObject = CreateObject(&quot;Scripting.FileSystemObject&quot;)

ScriptPath = FileSystemObject.BuildPath(FileSystemObject.GetParentFolderName(WScript.ScriptFullName),&quot;\&quot;)

Set Folder = FileSystemObject.GetFolder(FolderPath)

Set LogFile = FileSystemObject.OpenTextFile(ScriptPath &amp; Date &amp; &quot;.txt&quot;, ForWriting, True)

For Each File in Folder.Files
    if Not isObject(PreviousFile) Then
        Set PreviousFile = File
    Else
        
        if GetDescription(PreviousFile.Name) = GetDescription(File.Name) Then
            AppendToLog &quot;Найдены однотипные файлы &quot;&quot;&quot; &amp; PreviousFile.Name &amp; &quot;&quot;&quot; &quot;&quot;&quot; &amp; File.Name &amp; &quot;&quot;&quot;&quot;
            if GetFileDate(File.Name) &gt; GetFileDate(PreviousFile.Name) Then
                FullArchivePath = Dictionary(GetDescription(PreviousFile.Name))
                if FullArchivePath &lt;&gt; &quot;&quot; Then
                    FullArchivePath = FileSystemObject.BuildPath(FullArchivePath,&quot;\&quot;)
                    AppendToLog &quot;Перемещаем файл &quot;&quot;&quot; &amp; PreviousFile.Name &amp; &quot;&quot;&quot; в архивный каталог &quot;&quot;&quot; &amp; FullArchivePath &amp; &quot;&quot;&quot;.&quot;
                    If Not FileSystemObject.FolderExists(FullArchivePath) Then RecursiveCreateFolder FullArchivePath
                    PreviousFile.Move FullArchivePath
                Else
                    AppendToLog &quot;Не известен каталог архива для файлов &quot;&quot;&quot; &amp; GetDescription(PreviousFile.Name) &amp; &quot;&quot;&quot;&quot;
                End if
            End if
        End if
        
        Set PreviousFile = File
    End if
Next

Sub RecursiveCreateFolder(ByVal path)
    Dim part, tmpPath
    Path = Replace(Path,&quot;/&quot;,&quot;\&quot;)
    Path = Split(Path,&quot;\&quot;)
    For Each Part in Path
        tmpPath = tmpPath &amp; Part &amp; &quot;\&quot;
        If Not FileSystemObject.FolderExists(tmpPath) Then FileSystemObject.CreateFolder(tmpPath)
    Next
End Sub

Function GetDescription(FileName)
    GetDescription = Left(FileName,InstrRev(FileName,&quot; &quot;) - 1)
End Function

Function GetFileDate(ByVal FileName)
    Dim SpacePos, DateValue
    FileName = FileSystemObject.GetBaseName(FileName)
    SpacePos = InstrRev(FileName,&quot; &quot;)
    if SpacePos &gt; 0 Then
        DateValue = mid(FileName,SpacePos + 1)
        if isDate(DateValue) Then GetFileDate = CDate(DateValue)
    End if
End Function

Sub AppendToLog(Text)
    LogFile.WriteLine Time &amp; &quot;: &quot; &amp; Text 
End Sub

Sub CheckHost()
    if Instr(1,WScript.FullName,&quot;cscript&quot;,1) Then
        Dim WshShell
        Set WshShell = CreateObject(&quot;WScript.Shell&quot;)
        WshShell.Run &quot;wscript.exe &quot;&quot;&quot; &amp; WScript.ScriptFullName &amp; &quot;&quot;&quot;&quot;,1,False
        WScript.Quit()
    End if
End Sub</code></pre></div><p>Вот такой вот вариант )</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2011-03-16T11:13:36Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46198#p46198</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46190#p46190" />
			<content type="html"><![CDATA[<p>В аську постучал, но раз пока ответа нет, то напишу сюда подробнее. </p><p>На шаренном диске есть папка &quot;Информация&quot;. В ней лежат файлы:</p><p>Информация по углю 03.03.2011.pdf<br />Сборы на 20.02.2011.pdf<br />Прочая информация 14.03.2011.pdf</p><p>В какой-нибудь момент времени юзер записывает туда еще один файл, например положение в папке становится таким:</p><p>Информация по углю 03.03.2011.pdf<br />Информация по углю 03.03.2011.pdf<br />Сборы на 20.02.2011.pdf<br />Прочая информация 14.03.2011.pdf</p><p>Нужно, чтобы скрипт пробегался по этой папке &quot;Информация&quot; в поисках двух файлов, которые начинают одинаково. Если такие есть, то сравнивал из концовки, то есть даты. И с меньшей датой отправлял в архивную папку. То есть на данном примере он бы перемещал файл Информация по углю 03.03.2011.pdf</p><p>Проблема еще состоит в том, что &quot;Информация по углю&quot;&nbsp; имеет одну архивную папку, &quot;Сборы&quot; - другую и т.д.</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-03-16T09:01:16Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46190#p46190</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46189#p46189" />
			<content type="html"><![CDATA[<p><strong>2 holydiver:</strong> Кхм. Опять из объяснения ничего не понял, что у Вас происходит. Информация попала в голову и безнадёжно ищет мозги...</p><p>1) Только что проверил скрипт. Он из папки folder2 копирует более новые файлы в папку folder1. Сделал</p><p>в папке &quot;folder1&quot; файл &quot;Информация по углю 03.03.2011.pdf&quot;, а в папке &quot;folder2&quot; файл &quot;Информация по углю 12.03.2011.pdf&quot;. При запуске, скрипт успешно заменяет один файл на другой.</p><p>2) Предлагаю связаться по icq, т.к я так понял там условия поменялись и теперь есть подкаталоги или как то так ? Либо опишите проблему более доступно с ветвлением. Блок схемы приветствуются )</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2011-03-16T07:38:03Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46189#p46189</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46187#p46187" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong>, хм... твой скрипт получается сравнивает то, что в папке folder2 и folder1, а не внутри одной папки? <br />Я сейчас попробовал. Положил в папку folder2 файлы:</p><p>Информация по углю 03.03.2011.pdf<br />Информация по углю 12.03.2011.pdf</p><p>В папке folder1 пусто. При запуске скрипта выдает мэсседж бокс &quot;Ложь&quot; (я раскомментил строку). В итоге ничего не происходит.<br />Положил в папку folder1 файлы:</p><p>Сборы 01.02.2011<br />Сборы 11.03.2011</p><p>Результат такой: <br />мэсседж бокс &quot;03.03.2011/01.02.2011&quot; (то есть даты первых файлов в папке folder1 и папки folder2),<br />мэсседж бокс &quot;12.03.2011/01.02.2011&quot; (первая дата - это второй файл в папке folder2, вторая - первый файл в папке folder1).<br />И в папке folder1 два файла: Информация по углю 03.03.2011.pdf и Сборы 11.03.2011.pdf</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-03-16T04:26:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46187#p46187</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46186#p46186" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong>, спасибо, сейчас буду пробовать. С vbs дела имел, но тут нечто новое. <br />Кстати, задача, оказывается, расширилась... Каждый файл надо пихать в свою архивную папку. Поэтому, видимо, придется как-то разделить и явно указывать начальное имя файла, чтобы потом знать какой куда перенести.</p><p><strong>Slav</strong>, согласен, и я бы так сделал. Но дело в том, что в эту рабочую папку новые файлы копируют пользователи, причем с iPad&#039;ов, а происходит это не каждый день.</p>]]></content>
			<author>
				<name><![CDATA[holydiver]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26489</uri>
			</author>
			<updated>2011-03-16T03:53:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46186#p46186</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: парсинг имен файлов с датой, перенос старых]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=46169#p46169" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>holydiver пишет:</cite><blockquote><p>...<br />В какой-то момент времени (пару раз в неделю) туда складываются новые файлы с такими же именами, но новыми датами (но не обязательно сегодняшними).<br />В итоге необходим скрипт, который бы запускался, например, каждый день и проверял в этой папке наличие двух файлов с одинаковыми именами, но тот, у которого дата меньше - переносился в архивную папку. <br />...</p></blockquote></div><p>holydiver,</p><p>я бы пересмотрел сам алгоритм архивирования.</p><p>Вы предлагаете:<br />1. Копировать новые файлы в рабочую папку.<br />2. С некоторой периодичностью (раз в час, день, месяц, год...) запускать проверку однотипных файлов с разной датой и архивировать все, кроме последнего по дате.</p><p>На мой взгляд архивирование надо делать уже на этапе копирования, точнее <span class="bbu">перед</span> копированием.<br />Т.е. перед копирование, например, <em>Информация по углю 12.03.2011.pdf </em> в рабочую папку делать что-то типа&nbsp; <br /><em>copy Информация по углю*.pdf</em> в архивную папку, а затем <em>del Информация по углю*.pdf</em> из рабочей папки.</p>]]></content>
			<author>
				<name><![CDATA[Slav]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=16491</uri>
			</author>
			<updated>2011-03-15T13:34:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=46169#p46169</id>
		</entry>
</feed>
