<?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=9526</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9526&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Удаление по маске».]]></description>
		<lastBuildDate>Wed, 23 Apr 2014 12:39:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удаление по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82179#p82179</link>
			<description><![CDATA[<p>Какбэ... можно сперва создать массив из папок в корне диска, которые следует обходить в поисках файлов. Например, получить список папок можно так:<br /></p><div class="codebox"><pre><code>for /f &quot;tokens=3,* delims=^&lt; &quot; %i in (&#039;dir /a:d /a-h %systemdrive% ^| findstr /irv &quot;windows program&quot;&#039;) do @(if &quot;%i&quot; equ &quot;DIR&gt;&quot; @echo %j)</code></pre></div><p>С остальным не так уж сложно разобраться.</p>]]></description>
			<author><![CDATA[null@example.com (greg zakharov)]]></author>
			<pubDate>Wed, 23 Apr 2014 12:39:50 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82179#p82179</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Удаление по маске]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82178#p82178</link>
			<description><![CDATA[<p>Помогите пожалуйста.<br />у меня здача стоит таким образом: при запуске bat файла удалялось всё по маске (например *.txt) но не затрагивались бы системные папки такие как Windows, Program Files ну и т.д.<br />Я попробовал взять код:<br /></p><div class="codebox"><pre><code>@echo off
Setlocal EnableDelayedExpansion EnableExtensions
 
::Попка для удаления содержащих в ней каталогов
Set Src=L:\bash\test
::Файл-список ислючений каталогов любой степени вложенности
Set ExcList=L:\bash\test\Exclude.txt
 
Call :Init
Call :AllFolders &quot;%Src%&quot;
pause
Goto :eof
 
::Переписываем содержимое файла в массив (ускорение операций)
:Init
For /f &quot;UseBackQ Delims=&quot; %%A in (&quot;%ExcList%&quot;) do (
  Set /A n+=1
  Set Ex!n!=%%A
)
Exit /b
 
::Обходим папки рекурсивно
:AllFolders
Call :Check &quot;%~1&quot;
if %errorlevel%==1 Exit /B
For /f &quot;delims=&quot; %%A in (&#039;dir /b /a:d &quot;%~1&quot;&#039;) do (
  Call :AllFolders &quot;%~1\%%A&quot;
)
::Проверка не удаляем ли рабочий каталог
if /i &quot;%~1&quot; neq &quot;%Src%&quot; Echo rd /s /q &quot;%~1&quot;
Exit /b
 
::Проверить есть ли переданный как аргумент каталог в массиве
:Check
For /L %%A in (1,1,%n%) do (
  if /i &quot;%~1&quot;==&quot;!Ex%%A!&quot; Exit /B 1
)
Exit /b 0</code></pre></div><p>попробовал изменить 5 строчку. вместо:<br /></p><div class="codebox"><pre><code>Set Src=L:\bash\test</code></pre></div><p>просто поставил по маске, то есть:<br /></p><div class="codebox"><pre><code>Set Src=C:\*.txt</code></pre></div><p>в Exclude.txt просто добавил пару папок которые трогать не нужно (Wondows, Programm Files).<br />В общем не работает мой вариант. Куда копать?</p>]]></description>
			<author><![CDATA[null@example.com (X.509)]]></author>
			<pubDate>Wed, 23 Apr 2014 12:07:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82178#p82178</guid>
		</item>
	</channel>
</rss>
