<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Удаление файлов и папок из списка]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7030&amp;type=atom" />
	<updated>2012-04-05T21:22:26Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7030</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Удаление файлов и папок из списка]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58880#p58880" />
			<content type="html"><![CDATA[<p>Пробуйте, запустите без параметров - скрипт покажет справку, как его использовать.<br /></p><div class="codebox"><pre><code>
@echo off
setlocal enableextensions
if &quot;%2&quot; == &quot;&quot; (call :help) else (call :cln %*)
endlocal &amp; exit /b

:cln
del /f/q %~dp0*.tmp
set logfile=%~dp0%~n0.log
call :log &quot;%date% %time% %0 запущена с параметрами %*&quot;
for /f &quot;eol=# delims=^: tokens=*&quot; %%a in (&#039;type %1&#039;) do (dir /a-d /b /s %2\*%%a* &amp;&amp; dir /a-d /b /s %2\*%%a*&gt;&gt; %~dp0files.tmp)
for /f &quot;eol=# delims=^: tokens=*&quot; %%a in (&#039;type %1&#039;) do (dir /ad /b /s %2\*%%a* &amp;&amp; dir /ad /b /s %2\*%%a* &gt;&gt; %~dp0dirs.tmp)
call :log &quot;%date% %time% удаляю файлы...&quot;
call :clean
call :log &quot;%date% %time% удаляю папки...&quot;
call :clean 0
:: del %~dp0*.tmp
exit /b

:log
echo %~1 &gt;&gt; %logfile%
exit /b

:clean
:: здесь устанавливаются программы для удаления rd для каталогов, del для файлов
if &quot;%1&quot; == &quot;&quot; (set rm=echo &amp;&amp; set tmpf=%~dp0files.tmp) else (set rm=echo &amp;&amp; set tmpf=%~dp0dirs.tmp)
:: чтобы скрипт удалял файлы и папки - закомментируйте строчку выше и раскомментируйте строчку ниже
:: if &quot;%1&quot; == &quot;&quot; (set rm=del /f/q &amp;&amp; set tmpf=%~dp0files.tmp) else (set rm=rd /s/q &amp;&amp; set tmpf=%~dp0dirs.tmp)
for /f %%b in (&#039;type %tmpf%&#039;) do (
	%rm% %%b &amp;&amp; (call :log &quot;%date% %time% удалён(а) %%b.&quot;) || (call :log &quot;%date% %time% не могу удалить %%b.&quot;)
)
exit /b

:help
echo ---------------------------------------------------
echo %~n0 20120406 
echo очищает папку по шаблону
echo.
echo Usage:
echo     %~n0 &quot;файл_шаблона&quot; &quot;папка_для_очистки&quot;
echo ---------------------------------------------------
exit /b</code></pre></div><p><strong>содержимое файла шаблонов</strong><br /></p><div class="codebox"><pre><code># можно писать комментарии после решётки
# Удалятся все (!!!) файлы и папки в названии (и расширении - для файлов) которых
# встречаются tmp или TMP, log или LOG, в любой части названия в начале, середине, конце и в любой части расширения файла
tmp
log</code></pre></div><p>Получилось немного громоздко, &quot;бетатест&quot; показал, что работает. Также можно &quot;поиграться&quot; с обработкой файлов-шаблонов, т.о. пространство для полёта мысли, надеюсь, я вам дал.</p>]]></content>
			<author>
				<name><![CDATA[UNDYING]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27822</uri>
			</author>
			<updated>2012-04-05T21:22:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58880#p58880</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Удаление файлов и папок из списка]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58604#p58604" />
			<content type="html"><![CDATA[<p>В содержимом bat вывод в файл не прописан, но было бы желательно. У меня вопрос, как она может быть заблокирована, когда вручную спокойно удаляется? Например в C:\WINDOWS\Installer\MSI5F.tmp-. Эту папку не удаляет (хотя пустая).<br />Хотя вы правы, удаляет, в bat по невнимательности не тот файл прописал извиняюсь. Только иногда папки со случайным именем создаются как эта выделено C:\WINDOWS\Installer\<strong>MSI5F</strong>.tmp-. Что сделать чтобы bat ее удалял? Пробовал *.tmp-, MSI*.tmp-. Удалить все содержимое папки нельзя.</p>]]></content>
			<author>
				<name><![CDATA[Ivan]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27793</uri>
			</author>
			<updated>2012-03-30T14:07:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58604#p58604</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Удаление файлов и папок из списка]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58603#p58603" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Ivan пишет:</cite><blockquote><p>не удаляет пустые папки, даже в папке Temp.</p></blockquote></div><p>Удаляет. Если не удаляет — значит, папка заблокирована.</p><div class="quotebox"><cite>Ivan пишет:</cite><blockquote><p>да и в файл не выводит.</p></blockquote></div><p>А должен?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2012-03-30T13:40:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58603#p58603</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Удаление файлов и папок из списка]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=58600#p58600" />
			<content type="html"><![CDATA[<p>Есть файл например 5.txt, в котором записаны пути файлов и папок которые необходимо удалить, а результат выести в файл. В сети нашел следующее:<br /></p><div class="codebox"><pre><code>@echo off
FOR /F &quot;eol=; tokens=*&quot; %%i IN (*.txt) DO (
if exist &quot;%%i&quot; (
  del /q &quot;%%i&quot;
  if exist &quot;%%i&quot; (
    rmdir /s /q &quot;%%i&quot;
  )
)
)</code></pre></div><p>Проблема в том, что bat, не удаляет пустые папки, даже в папке Temp. Вообщем как то не очень корректно работает, да и в файл не выводит. Может необходимо что то подправить. Помогите.</p>]]></content>
			<author>
				<name><![CDATA[Ivan]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27793</uri>
			</author>
			<updated>2012-03-30T12:16:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=58600#p58600</id>
		</entry>
</feed>
