Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление скрытых папок по маске

Ответить
Настройки темы
CMD/BAT - Удаление скрытых папок по маске

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите пожалуста создать батник удаления скрытых папок по маске типа : $*$.
Суть проблемы такова, стоит сервер WSUS, который раздает обновления на локальные компы, на который создаются папки бэкапа типа $NtUninstallKB949014$. нужно переодически их удалять потому ка они засирают систему. обычный виндовый чичстильщик не удаляте их.

есть вот такой вариант но он тожене помогает:

for /D /R c:\windows %i in ($*$) do rmdir /S /Q %i

Отправлено: 16:16, 04-09-2009

 


Moderator


Сообщения: 53175
Благодарности: 15430

Профиль | Отправить PM | Цитировать


Цитата chatlaninsan:
потому ка они засирают систему.
В чем это выражается?

Отправлено: 16:22, 04-09-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


в том что занимают место на диске, а а если диск небольшой ну скажем всего 15 гигов ... как говориться рано или поздно для новых обновлений просто не хватит места для установки

Отправлено: 16:26, 04-09-2009 | #3


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Вот вариант скрипта - перенесите его в блокнот, сохраните в файл с расширением VBS, настройте Ваши пути, запускайте как исполнимый файл. Тестировал, вроде работает.
В скрипте использована рекурсия, так что удаляем по маске все директории и во всех поддиректориях.
Код: Выделить весь код
'  Удаление скрытых директорий по маске

'  Исходные данные  ------------------------------------------------
iiiDir = "I:\Всякая дребедень"          ' Директория где удаляем
Maska = "^\$.*\$$"                      ' Маска удаляемой директории
' ------------------------------------------------------------------

Call AllFolders(iiiDir, Maska)


Sub AllFolders(inDir, inMaska)       ' ---------------------------------------------

Set FSO = CreateObject("Scripting.FileSystemObject")
Set F = FSO.GetFolder(inDir)
Set SubF = F.SubFolders

For Each Folder In SubF
    nA = Folder.Attributes
    if nA >= 2066 Then nA = nA - 2048

    If nA = 18 Or nA = 19 Or nA = 22 Or nA = 23 Or nA = 50 Or nA = 51 Or nA = 54 Or nA = 55 Then
	Set Re = New RegExp
        Re.Pattern = inMaska
	Re.IgnoreCase = True
        If Re.Test(Folder.Name) Then
'                MsgBox Folder.Name + "  " + CStr(Folder.Attributes) + "  " + CStr(Folder.Type) + " " + CStr(Re.Test(Folder.Name))
        	FSO.DeleteFolder inDir + "\" + Folder.Name, True
        Else
                Call AllFolders(inDir + "\" + Folder.Name, inMaska)
        End If
    Else
        Call AllFolders(inDir + "\" + Folder.Name, inMaska)
    End If

Next

End Sub

Последний раз редактировалось megaloman, 05-09-2009 в 00:41. Причина: Уточнение для случая сжатых папок


Отправлено: 21:51, 04-09-2009 | #4


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


megaloman cпасибо, работает. Нашёл еще через PowerShel

remove-item -path (Get-ChildItem c:windows -Force $*$) -force -recurse

правда там тоже свои заморочки.

Отправлено: 11:01, 07-09-2009 | #5


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Немного ошибся в PowerShell лучше вот так сделать

Код: Выделить весь код
cd c:\windows
get-item c:\windows\* -force -include $*$ | remove-item -force -recurse
но тут еще проблема запуска этого скрипта на удаленных машинах, но кажеться я ее решил тоже. кому интересно вот тут:
http://www.redline-software.com/rus/...l-security.php

Отправлено: 17:22, 07-09-2009 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление скрытых папок по маске

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Backup дерева папок по маске newb1e Скриптовые языки администрирования Windows 4 27-07-2009 17:28
не могу включить отображение скрытых файлов и папок brother_bear Хочу все знать 7 22-03-2009 00:52
VBS/WSH/JS - [решено] Копирования скрытых папок с сохранениям атрибутов BadAngel Скриптовые языки администрирования Windows 7 19-03-2009 13:47
Доступ - [решено] Как добраться до скрытых папок? Antonij Microsoft Windows 2000/XP 3 01-10-2008 21:43
Интернет - Удаление скрытых сетевых подключений. emux Microsoft Windows 2000/XP 6 27-03-2008 14:47




 
Переход