|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Очистка папки обмена с сохранением подкаталогов |
|
VBS/WSH/JS - [решено] Очистка папки обмена с сохранением подкаталогов
|
Новый участник Сообщения: 3 |
Есть папка обмена
C:\TMP Содержащая несколько папок отделов с установленными соответствующими разрешениями. C:\TMP\A C:\TMP\B C:\TMP\C Требуется очищать все файлы в папке C:\TMP и во всех ее подкаталогах, при этом сохраняя сами папки отделов. Не получается добавить в скрипт исключения удаления самих каталогов. Подбросьте, пожалуйста, скрипт. Может сталкивался кто с такой задачей. Спасибо! |
|
Отправлено: 16:34, 22-03-2011 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 19:17, 22-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Если на VBS, то можно как-то так:
Option Explicit dim FolderPatch, objFSO, objFolder dim oneFolder dim onefile dim objfile, fileList FolderPatch="C:\TMP" set objFSO=CreateObject("Scripting.FileSystemObject") set objFolder=objFSO.GetFolder(FolderPatch) Sub GetAllFolders(objFolder) for each oneFolder in objFolder.SubFolders set fileList=onefolder.Files for each onefile in fileList objFile=onefile.delete next GetAllFolders oneFolder 'используем рекурсию next end sub set fileList=objFolder.Files for each onefile in fileList objFile=onefile.delete next GetAllFolders(objFolder) |
Отправлено: 19:44, 22-03-2011 | #3 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Виноват, не посмотрел тему сообщения, но всё же батник существенно короче.
UpDaTe, Похоже на Ваше решение, но чуть короче за счет применения метода DeleteFile и групповых символов в имени файла Public FSO AllDir = "P:\TMP" ' --------- Полное имя рабочего каталога (без слэжа \ на конце) Set FSO = CreateObject("Scripting.FileSystemObject") AllFolders AllDir ' --------------------------------------------------------------------------- Sub AllFolders(WDir) FSO.DeleteFile WDir + "\*.*", True Set SubF = FSO.GetFolder(WDir).SubFolders For Each Folder In SubF AllFolders WDir + "\" + Folder.Name Next End Sub |
------- Последний раз редактировалось megaloman, 22-03-2011 в 22:08. Отправлено: 21:58, 22-03-2011 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Все эти варианты работают и удаляют все файлы в подкаталогах, но оставляют за собой пустые папки.
То есть проблема в том, что не нужно оставлять ничего кроме самих папок A,B,C. |
|
Отправлено: 09:04, 23-03-2011 | #5 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать а поискать по форуму?
CMD/BAT - [решено] программирование bat на удаление файлов из папки |
Отправлено: 09:18, 23-03-2011 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:29, 23-03-2011 | #7 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Если надо в папке сохранить подпапки в её корне, и удалить все файлы и папки в них, в моём решении замените подпрограмму на вот эту
Sub AllFolders(WDir) FSO.DeleteFile WDir + "\*.*", True Set SubF = FSO.GetFolder(WDir).SubFolders For Each Folder In SubF FSO.DeleteFile WDir + "\" + Folder.Name + "\*.*", True FSO.DeleteFolder WDir + "\" + Folder.Name + "\*.*", True Next End Sub |
------- Последний раз редактировалось megaloman, 23-03-2011 в 17:08. Отправлено: 16:07, 23-03-2011 | #8 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Спасибо огромное, работает!
|
Отправлено: 17:40, 23-03-2011 | #9 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата Роман_Волков@vk:
|
|
------- Отправлено: 10:41, 17-01-2015 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Очистка папки %temp% у всех пользователей в системе. | noxville | Скриптовые языки администрирования Windows | 16 | 18-08-2020 06:47 | |
VBS/WSH/JS - [решено] Скрипт очистки папки обмена | stolyar | Скриптовые языки администрирования Windows | 9 | 15-02-2010 08:44 | |
Очистка папки. | zubkoff.s | Microsoft Windows NT/2000/2003 | 4 | 10-11-2009 05:31 | |
Разное - [решено] Очистка папки $hf_mig$ | sergav | Microsoft Windows 2000/XP | 1 | 19-01-2008 06:08 | |
Очистка папки темп | Forpost | Microsoft Windows 2000/XP | 8 | 25-01-2006 16:34 |
|