<?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="https://forum.script-coding.com/extern.php?action=feed&amp;tid=2916&amp;type=atom" />
	<updated>2010-11-25T20:49:23Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=2916</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42235#p42235" />
			<content type="html"><![CDATA[<p>Ну, да. Это ведь, в принципе, то же самое, только «ручками». А в примере по ссылке делается автоматически: в основной части — перебор всех смонтированных дисков, из них отбираются нужные (и доступные), затем вызывается процедура перебора для корневого каталога диска.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-25T20:49:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42235#p42235</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42232#p42232" />
			<content type="html"><![CDATA[<p>Понятно. А, например, через маску, если указать - <br /></p><div class="codebox"><pre><code>RecourseDeleteByMask shell.GetFolder(&quot;C:\&quot;), &quot;*.$$$&quot;
RecourseDeleteByMask shell.GetFolder(&quot;D:\&quot;), &quot;*.$$$&quot;
RecourseDeleteByMask shell.GetFolder(&quot;E:\&quot;), &quot;*.$$$&quot;</code></pre></div><p>возможно?</p>]]></content>
			<author>
				<name><![CDATA[maxv]]></name>
			</author>
			<updated>2010-11-25T19:08:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42232#p42232</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42230#p42230" />
			<content type="html"><![CDATA[<p>В «RecourseDeleteByMask» — никак. Этот перебор надо делать снаружи, в основном модуле, наподобие этого: <a href="http://forum.script-coding.com/viewtopic.php?id=2015">VBScript: поиск файла</a>.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-25T18:44:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42230#p42230</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=42226#p42226" />
			<content type="html"><![CDATA[<p>А каким образом в RecourseDeleteByMask можно указать все DriveType=1? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <br />То есть сканирование всех внешних носителей.</p>]]></content>
			<author>
				<name><![CDATA[maxv]]></name>
			</author>
			<updated>2010-11-25T16:50:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=42226#p42226</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41935#p41935" />
			<content type="html"><![CDATA[<p>Угу. Периодически забываю, что не везде поддерживаются маски. File/FolderExists — самое печальное из этого. Приношу свои извинения.</p><p>Тогда без вариантов, дабы избежать плясок с бубном — надо перенести команду удаления внутрь «On Error…» и добавить сразу после неё Err.Clear.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-18T17:46:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41935#p41935</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41932#p41932" />
			<content type="html"><![CDATA[<p>с </p><div class="codebox"><pre><code>    If objFSO.FileExists(strFullMask) Then
        objFSO.DeleteFile strFullMask, True                              &#039; Удаляем файлы по маске.
    End If</code></pre></div><p>не работает вообще</p>]]></content>
			<author>
				<name><![CDATA[maxv]]></name>
			</author>
			<updated>2010-11-18T16:44:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41932#p41932</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41930#p41930" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>maxv пишет:</cite><blockquote><p>после цикла лучше поставить smile</p></blockquote></div><p>Разве от этого скрипт падать перестанет (если убрать On Error Resume Next)? Посему такой вариант мне не нравится.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-18T16:24:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41930#p41930</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41929#p41929" />
			<content type="html"><![CDATA[<p>Спасибо, ясно. Правда, дело обстоит несколько иначе: скрипт не «не обрабатывает», а банально падает с ошибкой из-за:<br /></p><div class="quotebox"><cite>DeleteFile Method пишет:</cite><blockquote><p><strong>Remarks</strong><br />An error occurs if no matching files are found. …</p></blockquote></div><p>Тогда, думаю, следует поменять логику таким образом, с:<br /></p><div class="codebox"><pre><code>    objFSO.DeleteFile strFullMask, True                              &#039; Удаляем файлы по маске.</code></pre></div><p>на:<br /></p><div class="codebox"><pre><code>    If objFSO.FileExists(strFullMask) Then
        objFSO.DeleteFile strFullMask, True                              &#039; Удаляем файлы по маске.
    End If</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-18T16:22:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41929#p41929</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41928#p41928" />
			<content type="html"><![CDATA[<p>objFSO.DeleteFile strFullMask, True</p><p>после цикла лучше поставить <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><div class="codebox"><pre><code>Option Explicit

Dim objFSO

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

RecourseDeleteByMask objFSO.GetFolder(&quot;D:\111111&quot;), &quot;*.cdx&quot;

Set objFSO = Nothing

WScript.Quit 0
&#039;=============================================================================
Sub RecourseDeleteByMask(objFolder, strMask)
    Dim objSubFolder
    Dim strFullMask
    
    WScript.Echo objFolder.Path                                      &#039; Выводим путь обрабатываемой папки (для
                                                                     &#039; отладки; имеет смысл закомментировать).
    
    strFullMask = objFSO.BuildPath(objFolder.Path, strMask)          &#039; Строим полный путь.
    
    On Error Resume Next                                             &#039; Обрабатываем ошибки, возможные в случае,
                                                                     &#039; когда нет доступа к содержимому папки
                                                                     &#039; (пример - «System Volume Information».
    For Each objSubFolder In objFolder.SubFolders
        If Err.Number = 0 Then                                       &#039; Удалось получить доступ к содержимому папки?
            RecourseDeleteByMask objSubFolder, strMask               &#039; Вызываем процедуру для каждой из подпапок.
        Else                                                         &#039; Если не удалось —
            Err.Clear                                                &#039; сбрасываем состояние ошибки и движемся дальше.
            WScript.Echo &quot;Can&#039;t enumerate subfolders for folder [&quot; &amp; objFolder.Path &amp; &quot;].&quot;
        End If
    Next

    objFSO.DeleteFile strFullMask, True                              &#039; Удаляем файлы по маске.
    
    On Error Goto 0                                                  &#039; Восстанавливаем стандартную обработку ошибок
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[maxv]]></name>
			</author>
			<updated>2010-11-18T16:12:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41928#p41928</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41926#p41926" />
			<content type="html"><![CDATA[<p><strong>#16 </strong></p><div class="codebox"><pre><code>Option Explicit

Dim objFSO

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

RecourseDeleteByMask objFSO.GetFolder(&quot;D:\111111&quot;), &quot;*.cdx&quot;

Set objFSO = Nothing

WScript.Quit 0
&#039;=============================================================================
Sub RecourseDeleteByMask(objFolder, strMask)
    Dim objSubFolder
    Dim strFullMask
    
    WScript.Echo objFolder.Path                                      &#039; Выводим путь обрабатываемой папки (для
                                                                     &#039; отладки; имеет смысл закомментировать).
    
    strFullMask = objFSO.BuildPath(objFolder.Path, strMask)          &#039; Строим полный путь.
    
    objFSO.DeleteFile strFullMask, True                              &#039; Удаляем файлы по маске.
    
    On Error Resume Next                                             &#039; Обрабатываем ошибки, возможные в случае,
                                                                     &#039; когда нет доступа к содержимому папки
                                                                     &#039; (пример - «System Volume Information».
    For Each objSubFolder In objFolder.SubFolders
        If Err.Number = 0 Then                                       &#039; Удалось получить доступ к содержимому папки?
            RecourseDeleteByMask objSubFolder, strMask               &#039; Вызываем процедуру для каждой из подпапок.
        Else                                                         &#039; Если не удалось —
            Err.Clear                                                &#039; сбрасываем состояние ошибки и движемся дальше.
            WScript.Echo &quot;Can&#039;t enumerate subfolders for folder [&quot; &amp; objFolder.Path &amp; &quot;].&quot;
        End If
    Next
    
    On Error Goto 0                                                  &#039; Восстанавливаем стандартную обработку ошибок
End Sub</code></pre></div>]]></content>
			<author>
				<name><![CDATA[maxv]]></name>
			</author>
			<updated>2010-11-18T16:04:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41926#p41926</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41925#p41925" />
			<content type="html"><![CDATA[<p><strong>maxv</strong>, какой именно скрипт: укажите пост со скриптом, к которому относится Ваше сообщение.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2010-11-18T15:58:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41925#p41925</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41922#p41922" />
			<content type="html"><![CDATA[<p><strong>Данный скрипт работает при условии, если найден файл в корне, то происходит обработка в подпапках.<br />Если в корне фалов по маске не найдено, то подпапки скрипт не обрабатывает.</strong></p>]]></content>
			<author>
				<name><![CDATA[maxv]]></name>
			</author>
			<updated>2010-11-18T15:29:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41922#p41922</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20737#p20737" />
			<content type="html"><![CDATA[<p>о )) спасибо большое )</p>]]></content>
			<author>
				<name><![CDATA[Arlekin_s]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24437</uri>
			</author>
			<updated>2009-03-16T10:30:53Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20737#p20737</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20735#p20735" />
			<content type="html"><![CDATA[<p>Правильно ругается. Пишите так:<br /></p><div class="codebox"><pre><code>RecourseDeleteByMask objFSO.GetFolder(&quot;D:\111111&quot;), &quot;*.cdx&quot;
RecourseDeleteByMask objFSO.GetFolder(&quot;D:\111111&quot;), &quot;*.dbf&quot;</code></pre></div><p>Или надо менять саму функцию «RecourseDeleteByMask» для поддержки множественных масок.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-03-16T10:16:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20735#p20735</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Удаление файлов с завершением процессов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=20733#p20733" />
			<content type="html"><![CDATA[<p>ну я имел ввиду что одного типа файлов. т.е. если я пишу</p><div class="codebox"><pre><code>RecourseDeleteByMask objFSO.GetFolder(&quot;D:\111111&quot;), &quot;*.cdx, *.dbf&quot;</code></pre></div><p>то он ругается вот на эту строку. <br /></p><div class="codebox"><pre><code>objFSO.DeleteFile strFullMask, True</code></pre></div><p>Не может найти файл.</p>]]></content>
			<author>
				<name><![CDATA[Arlekin_s]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24437</uri>
			</author>
			<updated>2009-03-16T10:08:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=20733#p20733</id>
		</entry>
</feed>
