<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS проверка существования файла по маске]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=7535</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7535&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS проверка существования файла по маске».]]></description>
		<lastBuildDate>Tue, 11 Sep 2012 03:45:17 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS проверка существования файла по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=63724#p63724</link>
			<description><![CDATA[<p>в виндузе для этого есть планировщик задач</p>]]></description>
			<author><![CDATA[null@example.com (smaharbA)]]></author>
			<pubDate>Tue, 11 Sep 2012 03:45:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=63724#p63724</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS проверка существования файла по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=63704#p63704</link>
			<description><![CDATA[<p>Спасибо за ответы и скрипты! Они работают, но как сделать так что бы он сканировал каждые 5 минут на входящие файлы? Как сделать что бы скрипт начинал за ново работать с задержкой например 5 минут? Надо использовать Sleep Do loop? Или что то другое? Насколько я понял goto нет... или проще использовать планировщик виндовс?</p>]]></description>
			<author><![CDATA[null@example.com (xsanekk)]]></author>
			<pubDate>Mon, 10 Sep 2012 13:38:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=63704#p63704</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS проверка существования файла по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=63604#p63604</link>
			<description><![CDATA[<p><strong>xsanekk</strong>, проверку наличия файлов с заданным расширением в заданной папке можно выполнить так:<br /></p><div class="codebox"><pre><code>strPath = &quot;D:\Temp&quot;
Set objFolderItems = CreateObject(&quot;Shell.Application&quot;).NameSpace(strPath).Items
objFolderItems.Filter 64 + 128, &quot;*.iso&quot;
MsgBox &quot;Кол-во элементов: &quot; &amp; objFolderItems.Count</code></pre></div><p>Если задача решается с целью получения уведомления о появлении некоего файла в заданной папке, то для этого лучше использовать иной инструмент: WMI-подписку на соответствующее системное событие.<br />Ищите на форуме темы по ключам <span style="color: blue">CIM_DirectoryContainsFile</span> и <span style="color: blue">__InstanceCreationEvent</span>.</p>]]></description>
			<author><![CDATA[null@example.com (Dmitrii)]]></author>
			<pubDate>Fri, 07 Sep 2012 03:25:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=63604#p63604</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS проверка существования файла по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=63596#p63596</link>
			<description><![CDATA[<div class="quotebox"><cite>Fedor пишет:</cite><blockquote><p>Не уверен, что допустимо использовать маску файлов</p></blockquote></div><p>Совершенно верно. </p><p>Лучше, на мой взгляд, для поиска файлов, соответствующих заданному шаблону, использовать полноценное регулярное выражение. </p><p>Если необходимо делать поиск по маске (*.RTF), то надо преобразовать маску в регулярное выражение. Возможно существуют простые средства в VBS по преобразованию маски в правильное регулярное выражение, но оно мне не знакомо. Поэтому я предлагаю использовать следующую функцию:<br /></p><div class="codebox"><pre><code>
&#039; функция преобразования шаблонов DOS вида *.RTF
&#039; в правильное регистро-независимое регулярное выражение вида .*\.RTF
function pattern2regexp(pattern)
	dim re
	set re = new RegExp
	re.Pattern = &quot;([\(\)\{\}\[\]\|\\\/\.\^\$])&quot;
	re.Global = True

	pattern = re.Replace(pattern, &quot;\$1&quot;)
	pattern = Replace(pattern, &quot;*&quot;, &quot;.*&quot;)
	pattern = Replace(pattern, &quot;?&quot;, &quot;.&quot;)

	set re = new RegExp
	re.Pattern = pattern
	re.IgnoreCase = true

	set pattern2regexp = re
end function</code></pre></div><p>В дальнейшем результат функции можно использовать для поиска определенных файлов, соответствующих заданному шаблону:<br /></p><div class="codebox"><pre><code>
pattern = &quot;*.RTF&quot;
set re = pattern2regexp(pattern)
...
if re.Test(filename) then
	WScript.Echo &quot;File exists: &quot; &amp; filename
end if</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 06 Sep 2012 22:00:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=63596#p63596</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS проверка существования файла по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=63585#p63585</link>
			<description><![CDATA[<p>Есть увереность что скрипт различит:<br /><strong>file</strong> = &quot;O:\instr\1\*.RTF&quot;&nbsp; и&nbsp; For each <strong>File</strong> In Files? <br />Как мне помнится VBS не различает регистр букв в переменных, соответственно проверяется наличие текущего файла из коллекции, а не соответствие его маске.<br />Называй вещи своими именами, например так: mask_file= &quot;O:\instr\1\*.RTF&quot;</p><p> Что делает данная строка <strong>FSO.FileExists(file)</strong>? Не уверен, что допустимо использовать маску файлов, а не конкретный файл. Если все таки пройдет использование маски, тогда вовсе не нужно проверять каждый файл на соответствие маске достаточно написать так:<br /></p><div class="codebox"><pre><code>Dim FSO,FileName                                              &#039;Объявляем переменные
Set FSO = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;) &#039;Создаем объект FileSystemObject
set WshShell = CreateObject(&quot;WScript.Shell&quot;) 
iDir = &quot;O:\instr\1\&quot;                                     &#039;Директория где проверяем наличие файла
mask_file = &quot;O:\instr\1\*.RTF&quot;                             &#039;Маска файлов

i=0 
do while i = 0
WshShell.Sleep 5000                                         &#039;Сколько ждать? (1000=1секунда)
if  FSO.FileExists(mask_file)  Then 
  MsgBox (&quot;Пришел файл!&quot;)                                     
end if
loop</code></pre></div><p>Собственно зачем весь сыр-бор? Только&nbsp; для того, что бы уведомить пользователя о приходе файла?</p>]]></description>
			<author><![CDATA[null@example.com (Fedor)]]></author>
			<pubDate>Thu, 06 Sep 2012 20:34:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=63585#p63585</guid>
		</item>
		<item>
			<title><![CDATA[VBS проверка существования файла по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=63576#p63576</link>
			<description><![CDATA[<p>Привет всем! Помогите пожалуйста, вот написал скрипт. Проверяет файлы из заданной директории по маске, в папке где проверяется подпапка, ее нельзя перемещать.<br /></p><div class="codebox"><pre><code>Dim FSO,FileName                                              &#039;Объявляем переменные
Set FSO = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;) &#039;Создаем объект FileSystemObject
iDir = &quot;O:\instr\1\&quot;                                     &#039;Директория где проверяем наличие файла
file = &quot;O:\instr\1\*.RTF&quot;                             &#039;Маска файлов

i=0 
do while i = 0

Set Files = FSO.GetFolder(iDir).Files

set WshShell = CreateObject(&quot;WScript.Shell&quot;) 
WScript.Sleep 5000                                         &#039;Сколько ждать? (1000=1секунда)

For each File In Files
if  FSO.FileExists(file)  Then 
fl=fl+1
end if
next
if fl&lt;&gt;0 then
    MsgBox (&quot;Пришел файл!&quot;)                                     &#039;Выводим сообщение
end if
loop</code></pre></div><p>вот приходит файл, появляется сообщение, но если его удалить, сообщение так и выводится! Помогите! В VBS недавно пишу))</p>]]></description>
			<author><![CDATA[null@example.com (xsanekk)]]></author>
			<pubDate>Thu, 06 Sep 2012 15:33:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=63576#p63576</guid>
		</item>
	</channel>
</rss>
