Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
5 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 21

Удаление файлов по маске

26.05.2015, 08:46. Показов 4547. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа, помогите пожалуйста, нужен скрипт который бы удалял в конкретной папке все папки, под папки, файлы кроме тех в название которые в начале стоит знак "!"
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.05.2015, 08:46
Ответы с готовыми решениями:

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

Удаление папок по маске и по списку
Очень часто бывает необходимо удалять из темпов конкретного пользователя папки "dumps" и папки типа:...

Поиск файлов по маске
Здрасте, у меня проблема с кодом. Он должен искать все файлы по маске xls, xlsx в той папке где лежит скрипт. Допустим в папке 4 файла: 1...

9
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
26.05.2015, 21:06
Лучший ответ Сообщение было отмечено ilfaty как решение

Решение

на JScript будет примерно так: только этот скрипт удалит не попадающие под шаблон каталоги в которых могут оказаться пустые файлы с символом "!" в начале имени
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var sStartFolderName = "C:\\Documents and Settings\\u0\\Рабочий стол\\Новая папка";
var g_objFS = new ActiveXObject("Scripting.FileSystemObject");
 
 
 
Walk_F(sStartFolderName);
Walk_D(sStartFolderName);
 
WScript.Quit();
 
 
 
//рекурсивно стирает файлы без символа "!" в начале имени
function Walk_F(sFolderName)
{
    var objFolder = g_objFS.GetFolder(sFolderName);
    var objE = new Enumerator(objFolder.Files);
 
    for (; !objE.atEnd(); objE.moveNext())
        if (objE.item().Name.charAt(0) != "!")
            g_objFS.DeleteFile(objE.item().Path);
 
 
    objE = new Enumerator(objFolder.SubFolders);
 
    for (; !objE.atEnd(); objE.moveNext())
        Walk_F(objE.item().Path);
}
 
 
 
//рекурсивно стирает каталоги без символа "!" в начале имени,
//и кроме того общий размер (с файлами) которых =0, т.е.
//если в этих каталогах будут пустые файлы (даже с "!" в начале имени)
//то они все равно будут стерты!!!
function Walk_D(sFolderName)
{
    var objFolder = g_objFS.GetFolder(sFolderName);
    var objE = new Enumerator(objFolder.SubFolders);
 
    for (; !objE.atEnd(); objE.moveNext())
        if (objE.item().Name.charAt(0) != "!" && objE.item().Size == 0)
            g_objFS.DeleteFolder(objE.item().Path);
 
 
    objE = new Enumerator(objFolder.SubFolders);
 
    for (; !objE.atEnd(); objE.moveNext())
        Walk_D(objE.item().Path);
 
}
3
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
26.05.2015, 22:49
ilfaty, используйте метод Filter объекта FolderItems.
Пример найдёте здесь: Поиск в папке и подсчет файлов.
0
5 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 21
27.05.2015, 10:28  [ТС]
buggydancer
А если путь сетевой, как его указать?

Добавлено через 14 минут
Все не надо разобрался, спасибо огромное
0
 Аватар для ComSpec
3464 / 2002 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
27.05.2015, 13:45
Интересно, правильно ли я понял, что ТС имел в виду, если речь идёт о папке: если в начале имени папки стоит восклицательный знак, то это означает, что эта папка помечена, поскольку она нужна, и, соответственно, всё её содержимое удалять нельзя независимо от наличия или отсутствия восклицательного знака в начале имён этого содержимого?

Если это так, то такой код пакетного файла с этим должен "разобраться" (логика построения алгоритма не самая простая):

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
 
set "dir=C:\Test"
 
for /f "delims=" %%i in ('2^>nul dir/a/b/s "%dir%"') do (
 if exist "%%i\" (
  dir/a/b/s "%%i"| >nul findstr \\!|| 2>nul rd/q/s "%%i"
 ) else (
  echo "%%i"| >nul findstr \\!|| 2>nul del/a/f "%%i"
 )
)
 
exit/b 0
.
2
5 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 21
27.05.2015, 16:06  [ТС]
ComSpec, Нет, не правильно понял, должна быть и папки с восклицательным знаком и все подпапки и файлы внутри этой папки. Чтобы пользователи не расслаблялись, ату создают папку, в название этой папки ставят в начале имени восклицательный знак и захламляют её всяким мусором (нужно им это не нужно, без разницы)

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

Добавлено через 8 минут
Вот у buggydancer хороший скрипт, отрабатывает как надо, но яваскрипт не запускается на Windows server 2008 (запрещено)
0
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
27.05.2015, 20:20
ComSpec, да я вот тоже пробовал пакетный файл написать для этой задачи, но моих знаний на это не хватило, поэтому и "пошёл по пути наименьшего сопротивления" - полез в свою папку "codebase" где и отыскал скрипт 2012 года сделанный для этого треда: (#4 пост) Поиск файла по подкаталогам его (тот скрипт) пришлось немножко "допилить" (хотя по-хорошему его бы на vbs переписать - для порядка, js как-то больше для веба)

ilfaty, Спасибо и Вам на добром слове! собственно пост #2 я писал не ожидая что скрипт подойдёт сразу - редко так бывает, скорее это был расчёт на более длительную доработку (ещё на несколько постов), кстати, как предлагает Dmitrii, на vbs можете попробовать написать на объекте "Shell.Application" - может и не так гибко, зато короче получится (ещё один тред про Filter: Скрипт для архивации данных)
2
5 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 21
28.05.2015, 15:55  [ТС]
buggydancer, к сожалению писать скрипты не умею, поэтому буду использовать на яве (так как он идеально подходит), а так как на серваке не запустить, настрою планеровщик на другом компе, путь в скрипте укажу сетевой.

Добавлено через 7 часов 28 минут
Появилось еще одно условие, необходимо указать папку исключения и файл исключения.
0
5 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 21
01.06.2015, 08:37  [ТС]
buggydancer, перестал работать скрипт, ошибка в скрине.
Миниатюры
Удаление файлов по маске  
0
5 / 0 / 0
Регистрация: 26.05.2015
Сообщений: 21
01.11.2016, 22:39  [ТС]
Скрипт работает. но периодически затыкается с ошибкой которая выше.
Проблема заключается в том, что скрипт не может удалить системные файлы типа desktop.ini у которых стоит Атрибут "Только чтение", если убрать этот атрибут то скрипт отрабатывает.

Помогите пожалуйста доработать скрипт:
1. чтобы он мог удалять системные файлы с Атрибутом "Тольк чтение"
2. возможность добавить пути до папок и файлов исключения
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2016, 22:39
Помогаю со студенческими работами здесь

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

Поиск файлов по маске и вывести на экран
Здрасте, нужно найти все файлы по маске и вывести с сообщением Код ниже делает поиск, но не по маске. Помогите преобразовать set FSO =...

Перемещение файлов по маске с ведением журнала
Здравствуйте уважаемые! Прошу помощи с решением. Пытаюсь написать скрипт со следующим условием - перенос всех файлов из родительской...

Поиск файлов по маске из "чёрного" списка
Подскажите как вывести список файлов (и каталогов) с учетом масок "черного" списка Маски лежат в массиве, например "*.tmp",...

Удаление файлов по маске
ищу софтину, которая позволит удалять файлы по маске (особенно если у них разное имя). например оставлять только за 5 число и 20-е. не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru