<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT:Выборочное удаление ненужных папок]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=14760</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14760&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT:Выборочное удаление ненужных папок».]]></description>
		<lastBuildDate>Sun, 19 May 2019 09:36:31 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134403#p134403</link>
			<description><![CDATA[<p><strong>alexii</strong> спасибо попробую</p>]]></description>
			<author><![CDATA[null@example.com (Konstantin)]]></author>
			<pubDate>Sun, 19 May 2019 09:36:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134403#p134403</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134402#p134402</link>
			<description><![CDATA[<p><strong>Konstantin</strong>. пробуйте (на WSH):<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>Option Explicit

Dim strSourceFolder

Dim arrExcludeFolders
Dim lngDiff

Dim objFSO
Dim objExcludeFolders
Dim strExcludeFolder


strSourceFolder   = &quot;C:\Scan&quot;
arrExcludeFolders = Array(&quot;Bib&quot;, &quot;Buh&quot;, &quot;Obmen&quot;)
lngDiff           = 3 * 24 * 60 * 60 &#039; Days count * Hours in day * Minutes in hour * Seconds in minute

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

If objFSO.FolderExists(strSourceFolder) Then
	Set objExcludeFolders = WScript.CreateObject(&quot;Scripting.Dictionary&quot;)
	
	For Each strExcludeFolder In arrExcludeFolders
		objExcludeFolders.Add objFSO.BuildPath(strSourceFolder, strExcludeFolder), strExcludeFolder
	Next
	
	ScanSubFolders objFSO.GetFolder(strSourceFolder), 0
	
	objExcludeFolders.RemoveAll
	Set objExcludeFolders = Nothing
Else
	WScript.Echo &quot;Can&#039;t find source folder [&quot; &amp; strSourceFolder &amp; &quot;].&quot;
	WScript.Quit 1
End If

Set objFSO = Nothing

WScript.Quit 0
&#039;=============================================================================

&#039;=============================================================================
Sub ScanSubFolders(objFolder, intLevel)
	Dim objSubfolder
	Dim objFile
	Dim strExcludeFolder
	
	
	WScript.Echo String(intLevel, vbTab) &amp; &quot;Scan folder [&quot; &amp; objFolder.Path &amp; &quot;]&quot;
	
	For Each objSubfolder In objFolder.SubFolders
		ScanSubFolders objSubfolder, intLevel + 1
	Next
	
	For Each objFile In objFolder.Files
		If DateDiff(&quot;s&quot;, objFile.DateLastModified, Now()) &gt;= lngDiff Then
			WScript.Echo String(intLevel, vbTab) &amp; &quot;File [&quot; &amp; objFile.Path &amp; &quot;] deleted.&quot;
			objFile.Delete True
		Else
			WScript.Echo String(intLevel, vbTab) &amp; &quot;File [&quot; &amp; objFile.Path &amp; &quot;] skipping.&quot;
		End If
	Next
	
	If objFolder.SubFolders.Count = 0 And objFolder.Files.Count = 0 Then
		If Not objExcludeFolders.Exists(objFolder.Path) Then
			WScript.Echo String(intLevel, vbTab) &amp; &quot;Folder [&quot; &amp; objFolder.Path &amp; &quot;] deleted.&quot;
			objFolder.Delete True
		Else
			WScript.Echo String(intLevel, vbTab) &amp; &quot;Folder [&quot; &amp; objFolder.Path &amp; &quot;] excluded.&quot;
		End If
	Else
		WScript.Echo String(intLevel, vbTab) &amp; &quot;Folder [&quot; &amp; objFolder.Path &amp; &quot;] not empty, skipping.&quot;
	End If
End Sub
&#039;=============================================================================
</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sun, 19 May 2019 09:21:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134402#p134402</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134377#p134377</link>
			<description><![CDATA[<p><strong>alexii</strong> ну так что поможете?</p>]]></description>
			<author><![CDATA[null@example.com (Konstantin)]]></author>
			<pubDate>Thu, 16 May 2019 20:47:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134377#p134377</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134311#p134311</link>
			<description><![CDATA[<p><strong>alexii</strong>, Нужно что бы папка папка Scan чистилась полностью так же как и папки Bib и Buh но сами папки Bib и Buh оставались, ах да так же появилась папка Obmen которую не нужно чистить.</p>]]></description>
			<author><![CDATA[null@example.com (Konstantin)]]></author>
			<pubDate>Sun, 12 May 2019 20:45:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134311#p134311</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134113#p134113</link>
			<description><![CDATA[<p><strong>Konstantin</strong>, я спрашивал, что делать со вложенными каталогами, которые встретятся внутри?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Wed, 08 May 2019 00:37:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134113#p134113</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134112#p134112</link>
			<description><![CDATA[<p><strong>alexii</strong> Каталог тот же, дата последней модификации.</p>]]></description>
			<author><![CDATA[null@example.com (Konstantin)]]></author>
			<pubDate>Wed, 08 May 2019 00:19:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134112#p134112</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134111#p134111</link>
			<description><![CDATA[<div class="quotebox"><cite>Konstantin пишет:</cite><blockquote><p>а содержимое её чистилось и желательно что бы чистились файлы старше определённого числа</p></blockquote></div><p>А каталоги? И какую берём дату — дату создания или дату последней модификации?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 07 May 2019 23:44:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134111#p134111</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134110#p134110</link>
			<description><![CDATA[<p>Спасибо, а можно как ни будь сделать что бы эти папки он не трогал а содержимое в них удалял, то есть папка Bib оставалась а содержимое её чистилось и желательно что бы чистились файлы старше определённого числа например старше 3 дней если не сложно подскажите пожалуйста.) <strong>alexii</strong></p>]]></description>
			<author><![CDATA[null@example.com (Konstantin)]]></author>
			<pubDate>Tue, 07 May 2019 22:27:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134110#p134110</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134033#p134033</link>
			<description><![CDATA[<p>То есть, у Вас есть наличествует, например, такая вот структура каталогов:<br /></p><div class="codebox"><pre><code>C:\SCAN
├───aaaaa
├───Bib
├───Buh
├───sdhsdfhdfh
├───sgdfgdh
└───sksgksgkl</code></pre></div><p>И Вам надо удалить все каталоги, отличные от Bib и Buh, так?</p><p>Пример кода:<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\Scan
set sExcludeFolders=&quot;Bib&quot; &quot;Buh&quot;

if exist &quot;%sSourceFolder%\.&quot; (
	pushd &quot;%sSourceFolder%&quot; &amp;&amp; (
		for /f &quot;usebackq delims=&quot; %%i in (`2^&gt;nul dir /b /a:d &quot;%sSourceFolder%\*.*&quot;`) do (
			set bFound=
			
			for %%j in (%sExcludeFolders%) do (
				if /i &quot;%%~i&quot; equ &quot;%%~j&quot; set bFound=1
			)
			if not defined bFound echo rd /s /q &quot;%sSourceFolder%\%%~i&quot;
		)
		popd
	)
) else (
	echo Can&#039;t find source folder [%sSourceFolder%].
	exit /b 1
)

endlocal
exit /b 0
</code></pre></div><p>Для реального удаления уберите <span style="color: red">echo</span> перед командой rd.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Mon, 06 May 2019 09:19:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134033#p134033</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT:Выборочное удаление ненужных папок]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134032#p134032</link>
			<description><![CDATA[<p>Доброго времени суток.<br />Возник такой вопрос, у меня есть код:<br /></p><div class="codebox"><pre><code>chcp 1251
forfiles /p &quot;D:\Новая папка&quot; /s /m *.* /c &quot;cmd /c Del @path&quot; /d -2</code></pre></div><p>Он удаляет все файлы из всех под папок но сами папки не трогает.<br />Вопрос заключается в следующем, можно ли доработать этот код так что бы он удалял только определённые папки.<br />Например у меня на работе есть папка Scan туда отправляются все отсканированные файлы с МФУ которая стоит у меня в кабинете в этой папке есть ещё 2 папки Buh(это для бухгалтерской МФУ) и Bib(это для МФУ которая стоит в библиотеке). Но бухгалтера любят в папке Scan создавать ещё кучу папок и отдельно перекидывать туда свои сканы и именно вот эти папки мне надо удалять а папки Buh и Bib не трогать.<br />Помогите кто чем сможет пожалуйста)</p>]]></description>
			<author><![CDATA[null@example.com (Konstantin)]]></author>
			<pubDate>Mon, 06 May 2019 02:47:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134032#p134032</guid>
		</item>
	</channel>
</rss>
