Petya V4sechkin и
all, а вот задача для настоящих "зубров"!
Нужен батник, который при запуске из любого места, например, с внешнего носителя при загрузке системы с компакт-диска, удаляет, независимо от системных разрешений и атрибутов файлов:
1) всё содержимое всех папок Temp и Temporary Internet Files (для всех пользователей) в каталоге Documents and Settings на системном диске;
2) содержимое папки Windows\Temp;
3) содержимое корзины;
4) все точки восстановления за исключением последней.
Мастера с Ru-board помогали однажды мне решить эту задачу. Результат (последняя версия батника) - ниже (комментарии в файле не мои, а автора батника). Последующее применение батника на разных компах показало, что поставленная цель не вполне достигнута. Так что у тех, кто пожелает мне помочь, есть два пути, по вкусу: или работа над чужими ошибками, или свой вариант...
Код:

@echo off
setlocal
set "ds=Documents and Settings"
set "tf=Local Settings\Temp"
set "ti=Local Settings\Temporary Internet Files"
echo Start....
for %%i in (Q W E R T Y U I P O S D F G H J K L Z X C V N M) do (
if not %~d0==%%i: call:clean %%i
)
echo ....Done
goto:eof
:clean
if exist %1:\Windows\Temp (
pushd %1:\Windows\Temp
call:delete
popd
)
if exist %1:\WinNT\Temp (
pushd %1:\WinNT\Temp
call:delete
popd
)
::
:: Корзина. Встречал и Recycler и Recycled
::
if exist %1:\Recycler (
pushd %1:\Recycler
call:delete
popd
)
if exist %1:\Recycled (
pushd %1:\Recycled
call:delete
popd
)
:: Точки восстановления
:: Удаляет все подпапки вида RP001. У меня рабоает,
:: но я конечно не проверял на удаление
if exist "%1:\System Volume Information\*_restore*" (
pushd "%1:\System Volume Information\*_restore*"
for /f %%i in ('dir /b /ad') do rd /s /q %%i
popd
)
if not exist "%1:\%ds%" goto:eof
for /f "tokens=*" %%i in ('dir /b /ad "%1:\%ds%"') do (
if exist "%1:\%ds%\%%i\%tf%" (
pushd "%1:\%ds%\%%i\%tf%"
call:delete
popd
)
if exist "%1:\%ds%\%%i\%ti%" (
pushd "%1:\%ds%\%%i\%ti%"
call:delete
popd
)
)
goto:eof
:delete
del /q /a /f *.* 1>nul 2>&1
for /f "tokens=*" %%i in ('dir /b /ad') do rd /s /q "%%i" 1>nul 2>&1