<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: Получить список файлов в каталоге]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8663&amp;type=atom" />
	<updated>2020-04-30T05:36:38Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8663</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=139244#p139244" />
			<content type="html"><![CDATA[<p><strong>Xameleon</strong></p><p>Добрый день!<br />Очень интересно внедрить Заготовку №2<br />Подскажите, пожалуйста, как изменить размер Рекордсета на неограниченное?<br />В данном варианте выдает только 5 значений.</p><p>Хочю иногда обращатся в папке в ней 165к файлов и создавать таблицу с гиперссылками для Excel<br />PowerQuery обновляет список за 10 минут.</p><p>Модуль на FSO без ADO думаю будет работать дольше, массив на 2+ миллиона полей</p><p>Спасибо</p>]]></content>
			<author>
				<name><![CDATA[Chimmic]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40791</uri>
			</author>
			<updated>2020-04-30T05:36:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=139244#p139244</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76351#p76351" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>То же решение на PoSh&#039;е выглядит как </p><div class="codebox"><pre><code>PS E:\&gt; ls | ? {$_.Mode -notmatch &#039;d&#039;} | sort CreationTime</code></pre></div></blockquote></div><p>А ведь реально красиво. Перенести бы эту компактность в WSH. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Спасибо Вам за пример. Я как раз работаю над проектами: фреймворком для JScript и внедрением своего пользовательского &quot;синтаксического сахара&quot; в JS.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2013-10-22T19:34:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76351#p76351</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76346#p76346" />
			<content type="html"><![CDATA[<p>А можно небольшое описание как все это запустить и посмотреть как это работает, хоть один рабочий пример. Особо не силен в HTA, но судя по описанию и по коду вроде мне как раз подходит единственное добавлю еще кнопочки выбора и направления куда необходимо будет копировать.</p>]]></content>
			<author>
				<name><![CDATA[wildwolf007]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=30994</uri>
			</author>
			<updated>2013-10-22T18:48:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76346#p76346</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76100#p76100" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>...это Ваши предположения...</p></blockquote></div><p>Позвольте! Во-первых, критика здесь не причем, если Вы действительно умеете судить объективно, ибо г-н <strong>wisgest</strong> предложил более конструктивный вариант, а не вставил словечко ради слова, как в случае с г-ном <strong>Rumata</strong>, во-вторых, повторюсь еще раз <strong>код писался сходу, а не проектировался заблаговренно, что не исключает возможность ошибок</strong>, - или Вы и здесь не согласны? Тем паче что я не грубил и не употреблял повышенных тонов, а просто просил сатисфакции: были ли слова г-на <strong>Rumata</strong> упреком в пользу исправления кода или же он просто не уразумел, что код был написан сходу. Ну, а если Вам все вышесказанные доводы кажутся неубедительными, то позвольте Вам заметить, что тот же &quot;вдомек&quot; можно адресовать и Вам, как предвзятое отношение к моей персоне, - если желаете &quot;обмен любезностями&quot;, давайте перейдем в личку и обсудим &quot;либерализм&quot;, ставшей причиной эскапада в мой адрес, там. Прошу прощения прочих за столь обильный оффтоп.</p>]]></content>
			<author>
				<name><![CDATA[greg zakharov]]></name>
			</author>
			<updated>2013-10-17T16:23:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76100#p76100</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76097#p76097" />
			<content type="html"><![CDATA[<p><strong>greg zakharov</strong>, вдомёк— это Ваши предположения. <span style="color: green">Относитесь спокойнее к критике выкладываемого кода.</span></p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2013-10-17T15:48:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76097#p76097</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76095#p76095" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rumat пишет:</cite><blockquote><p>Не стоит к массивам применять совсем избыточную (в данном случае) структуру Enumerator, потому что массивы обрабатываются совершенно нативно.</p></blockquote></div><p>Должно быть Вы с ходу пишете идеальный код или Вам невдомек, что пример был &quot;налету&quot;? - в последних как правило содержатся ошибки, а потому я сие недоразумение приметил и без Вас. Или Вам непременно нужно, чтобы я исправил свой пост?</p>]]></content>
			<author>
				<name><![CDATA[greg zakharov]]></name>
			</author>
			<updated>2013-10-17T12:40:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76095#p76095</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76087#p76087" />
			<content type="html"><![CDATA[<p><strong>wisgest</strong>, благодарю ! ) Пойду переписывать старый скрипт. Пришло время оптимизации.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-10-17T09:49:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76087#p76087</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76086#p76086" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>как сделать выборку всех файлов с расширением &quot;rar&quot; и &quot;zip&quot; созданные за последние 5 дней и отсортировать в обратном порядке по дате создания и размеру ?</p></blockquote></div><p>Если при сортировке по дате не учитывать единицы времени меньше суток, то:<br /></p><div class="codebox"><pre><code>var FS = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);
var col = FS.GetFolder(MyFolder).Files;
var _enum = new Enumerator(col);
var arr = [];

var item = null;
var ext = String();

var ms_in_day = 24*60*60*1000;
var time_limit = new Date() - 5 * ms_in_day;
for (; !_enum.atEnd(); _enum.moveNext()) {
  item = _enum.item();
  ext = FS.GetExtensionName(item.Name).toLowerCase();
  if ((ext == &quot;zip&quot; || ext == &quot;rar&quot;) &amp;&amp; item.DateCreated &gt; time_limit)
    arr.push(item);
}
arr.sort(function (A, B) {
  return (
    Math.floor(B.DateCreated / ms_in_day) -
    Math.floor(A.DateCreated / ms_in_day) ||
    B.Size - A.Size);
});
for (var i = 0; i &lt; arr.length; i++) WScript.Echo(arr[i].Name);
</code></pre></div><p>Если время создания файла учитывать до миллисекунды, то проще:<br /></p><div class="codebox"><pre><code>arr.sort(function (A, B) {
  return B.DateCreated - A.DateCreated || B.Size - A.Size;
});</code></pre></div>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2013-10-17T09:45:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76086#p76086</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76085#p76085" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>. . . <br /></p><div class="codebox"><pre><code>
var arr = [], day;
. . . 
arr.sort();
with (new Enumerator(arr)) {
  for (; !atEnd(); moveNext()) {
    WScript.echo(item().split(&#039;:&#039;)[1]);
  }
}</code></pre></div><p>. . .</p></blockquote></div><p>Не стоит к массивам применять совсем избыточную (в данном случае) структуру Enumerator, потому что массивы обрабатываются совершенно нативно:<br /></p><div class="codebox"><pre><code>
for (var i = 0; i &lt; arr.length; i++) {
    var v = arr[i];
    // любые действия с элементом массива
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Rumata]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24846</uri>
			</author>
			<updated>2013-10-17T09:21:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76085#p76085</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76080#p76080" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>…изменить значения, возвращаемые функцией сравнения, на противоположные по знаку.</p></blockquote></div><p>Так еще лучше, - код ужимается в разы!</p>]]></content>
			<author>
				<name><![CDATA[greg zakharov]]></name>
			</author>
			<updated>2013-10-17T08:01:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76080#p76080</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76078#p76078" />
			<content type="html"><![CDATA[<p><strong>wisgest</strong>, посыпаю голову пеплом и ухожу в монастырь. ) VBScript в помойку ! Даёшь JavaScript в массы !</p><p>Чуть позже задумался - а как сделать выборку всех файлов с расширением &quot;rar&quot; и &quot;zip&quot; созданные за последние 5 дней и отсортировать в обратном порядке по дате создания и размеру ?</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-10-17T07:48:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76078#p76078</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76067#p76067" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Xameleon пишет:</cite><blockquote><p>Да, вариант сортировки массива красивый, но гибкость при этом же страдает ?</p></blockquote></div><p>1) Перед добавлением элементов в массив можно проверять их на наличие необходимого признака.<br />2) При упорядочивании массива можно вспомнить, что метод <em>.sort()</em> принимает в качестве аргумента функцию попарного сравнения элементов, что позволяет упорядочивать массивы объектов любой природы по любому правилу:<br /></p><div class="codebox"><pre><code>var FS = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);
var col = FS.GetFolder(MyFolder).Files;
var _enum = new Enumerator(col);
var arr = [];

for (; !_enum.atEnd(); _enum.moveNext()) arr.push(_enum.item());
arr.sort(function (A, B) {return A.DateCreated - B.DateCreated;});
for (var i = 0; i &lt; arr.length; i++) WScript.Echo(arr[i].Name);
</code></pre></div><div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>Если требуется обратный порядок, можно попросту</p></blockquote></div><p>…изменить значения, возвращаемые функцией сравнения, на противоположные по знаку.</p>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2013-10-17T01:34:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76067#p76067</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76061#p76061" />
			<content type="html"><![CDATA[<p>Понял. Согласен. Действительно, автор поста просил просто отсортировать по дате. Про гибкость и дополнительные усложнения речи не было. )</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-10-16T11:19:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76061#p76061</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76059#p76059" />
			<content type="html"><![CDATA[<p>Вы знаете, спорить и утверждать относительно гибкости не стану. Это более, чем очевидно. Но все же в самом понятии &quot;гибкость&quot; скрывается большое количество нюансов, таких как удобство и простота, а потому наиболее оптимальным вариантом решения большинства рутинных задач, как та же сортировка файлов, на мой взгдяд не должна доставлять лишнюю головную боль системному администратору, в виду чего было бы неплохо создать библиотеку классов (а может даже сколотить целый фреймворк) с легким API, дабы при возникновении задачи, которая некогда была решена, не задаваться вопросом (если решение забыто) ее решением, - достаточно было бы заглянуть в документацию библиотеки, пара строк кода и все. Вот это, пожалуй, и есть настоящая гибкость. Впрочем, здесь весьма велик риск холивара, поэтому сразу же оговорюсь, что это лишь мое мнение и навязывать его кому бы то ни было я не собираюсь, да и Ваше мнение я уважаю.</p>]]></content>
			<author>
				<name><![CDATA[greg zakharov]]></name>
			</author>
			<updated>2013-10-16T08:49:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76059#p76059</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Получить список файлов в каталоге]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=76056#p76056" />
			<content type="html"><![CDATA[<p><strong>greg zakharov</strong>, с первой частью сообщения согласен - WMI не лучший выбор для решения этой задачи, но на счёт второй части ответа не совсем понял. Да, вариант сортировки массива красивый, но гибкость при этом же страдает ? Через <strong>Recordset</strong> можно добиться больших возможностей для отбора.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2013-10-16T07:53:47Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=76056#p76056</id>
		</entry>
</feed>
