<?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=5381&amp;type=atom" />
	<updated>2011-01-15T08:07:22Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=5381</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: скрипт по поиску файла и удаление его папки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43776#p43776" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Anmat пишет:</cite><blockquote><p>cтранно все у Вас как-то - то удалять нужно папку &quot;Valve&quot;, то папку, в которой находится папка &quot;hl&quot;, то папку, где есть файл &quot;cs.exe&quot;, то вдруг уже файл &quot;Steam.dll&quot;. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p></blockquote></div><p>Просто изначально задание было искать папку &quot;Valve&quot;, но потом подумав мы решили, что люди могли переименовать её или же у них стоит CS:S. Так что логичней искать cs.exe и потом поднимаясь на каталог выше удалять его.<br />Но и в этом варианте появилась загвоздка, ведь у них он может называться не cs.exe, а к примеру: Run_CSS.exe, css.exe. Так что я решил, что лучше искать либо папку hl, либо файл steam.dll и также далее подниматься на папку выше удалять его.</p>]]></content>
			<author>
				<name><![CDATA[gruver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26647</uri>
			</author>
			<updated>2011-01-15T08:07:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43776#p43776</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: скрипт по поиску файла и удаление его папки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43774#p43774" />
			<content type="html"><![CDATA[<p>На oszone Вам уже ответили. Странно все у Вас как-то - то удалять нужно папку &quot;Valve&quot;, то папку, в которой находится папка &quot;hl&quot;, то папку, где есть файл &quot;cs.exe&quot;, то вдруг уже файл &quot;Steam.dll&quot;. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="quotebox"><blockquote><p>искать папку &quot;hl&quot;, а далее поднимаясь на одну выше удалять её</p></blockquote></div><p>В том батнике, что Вам предложили для удаления папки &quot;Valve&quot;, нужно просто вписать заместо нее &quot;hl&quot;, а удалять не %%i, а %%~dpi - и все дела.</p>]]></content>
			<author>
				<name><![CDATA[Anmat]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24650</uri>
			</author>
			<updated>2011-01-15T05:05:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43774#p43774</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: скрипт по поиску файла и удаление его папки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43752#p43752" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>SearchFold = &quot;Valve&quot; &#039;имя искомой папки 
RootFold = &quot;D:\&quot; &#039;корневой каталог для поиска 
FindedFolders =&quot;&quot; &#039; сюда запишутся все найденные папки 
 
   
call Get_Fold (RootFold) &#039;вызываем процедуру перебора подкаталогов, их удаления... 
call OutputResults() &#039; ...и показа результатов поиска 
sub Get_Fold (strFoldName) 
 
on error resume next 
Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;) 
Set Folder = FSO.GetFolder(strFoldName) 
For Each SubFolder In Folder.SubFolders 
s_path=SubFolder.shortpath &#039;короткий путь в формате 8.3 
    f_name = SubFolder.Name   
    if LCase(f_name) = LCase(SearchFold) then &#039;это приводит сравниваемые имена к нижнему регистру. Таким образом при поиске регистр не учитывается... 
   &#039;if f_name = SearchFold then &#039; ...а так регистр будет учитываться. Но мы этот варик закомментили :) 
&#039;получаем нормально читаемый полный путь к папке 
Set objShell  = WScript.CreateObject(&quot;Shell.Application&quot;) 
Set objFolder = objShell.Namespace(s_path) 
l_path = objFolder.Self.Path &#039;длинный путь 
FSO.DeleteFolder l_path, 0 &#039;прибиваем найденное. 1- удалять объекты с атрибутом &quot;для чтения&quot;, 0- нет. 
FindedFolders=FindedFolders &amp; vbcrlf &amp; &quot;&gt;&gt;&quot; &amp; l_path &#039; дописываем в переменную &quot;FindedFolders&quot; найденную папку 
&#039;exit sub &#039; вываливаемся из процедуры 
else 
call Get_Fold (s_path) &#039;...а теперь саму себя вызываем. Рекурсия, понимаешь :) 
end if 
Next 
end sub 
 
   
sub OutputResults 
if Len(FindedFolders) = 0 then 
msgbox(&quot;Ничего не нашли...&quot;) 
else 
msgbox(&quot;Чего-то было, но не стало:&quot; &amp; vbcrlf &amp; vbcrlf &amp; FindedFolders) 
Set FSO = CreateObject(&quot;Scripting.FileSystemObject&quot;) 
end if 
end sub</code></pre></div><p>Есть поиск папки, если бы как-то использовать метод GetParentFolderName, то я бы мог искать папку &quot;hl&quot;, а далее поднимаясь на одну выше удалять её... Но как это сделать, я не знаю:(</p>]]></content>
			<author>
				<name><![CDATA[gruver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26647</uri>
			</author>
			<updated>2011-01-14T17:45:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43752#p43752</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: скрипт по поиску файла и удаление его папки]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=43751#p43751" />
			<content type="html"><![CDATA[<p>Пожалуйста, помогите со скриптом ищущий Steam.dll. После того как файл найден удаляет папку с ним.</p>]]></content>
			<author>
				<name><![CDATA[gruver]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26647</uri>
			</author>
			<updated>2011-01-14T16:28:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=43751#p43751</id>
		</entry>
</feed>
