powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Cmd-файл для удаления файлов и запуск его в шедулере
9 сообщений из 9, страница 1 из 1
Cmd-файл для удаления файлов и запуск его в шедулере
    #34712718
Фотография George-III
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, не знаю как реализовать, необходимо запускать командный файлик, который будет проверять в папках наличие файлов только с определенным названием и расширением, всё остальное необходимо удалять... Кроме того, его надо запускать используя стандартный планировщик заданий win2003/xp только в последний день месяца(!!!).Подскажите пожалуйста!
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34713446
MZH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К чему сказано про проверку наличия? Быть может, надо просто удалять все, что не соответствует маске?
Можно, например, при помощи RAR упаковать все нужные файлы, а все остальные потереть нафиг, после чего упакованные восстановить обратно.
А что касается запуска в последний день месяца, то это легко решается созданием 4 различных заданий, группирующих месяцы с одинаковой продолжительностью.
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34713780
Фотография George-III
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MZHК чему сказано про проверку наличия? Быть может, надо просто удалять все, что не соответствует маске?

Да, я неточно выразился!
MZHМожно, например, при помощи RAR упаковать все нужные файлы, а все остальные потереть нафиг, после чего упакованные восстановить обратно.
Делаю аналогично, но без архивирования - переносом файлов в другой каталог, удаления всего в папке и возвратом назад перемещённых файлов.
Проблема в том, что это выполняется очень медленно, что не устраивает, вот я и задал вопрос, можно ли делетить файлы, которые не соответсвуют некой маске!
MZH
А что касается запуска в последний день месяца, то это легко решается созданием 4 различных заданий, группирующих месяцы с одинаковой продолжительностью.
Так и сделано, но создается несколько расписаний, проблема в феврале, я несколько однократных расписаний до 2010 года, соответсвенно по 28 и 29 числам, но это не очень удачно, так как потом на каждый следующий год надо дополнять ещё одним заданием...
Конечно надо ещё дожить до 2010, но всё же как-то неприятно от такого "топорного" решения проблемы
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34713833
MZH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
George-III MZHМожно, например, при помощи RAR упаковать все нужные файлы, а все остальные потереть нафиг, после чего упакованные восстановить обратно.
Делаю аналогично, но без архивирования - переносом файлов в другой каталог, удаления всего в папке и возвратом назад перемещённых файлов.
Проблема в том, что это выполняется очень медленно, что не устраивает, вот я и задал вопрос, можно ли делетить файлы, которые не соответсвуют некой маске!

Архивировать необязательно, достаточно указать RAR'у параметр -m0, тогда он не будет паковать файлы.
Насколько знаю, консольные команды move и copy не имеют параметров, позволяющих вытаскивать файлы сразу из всех подкаталогов, что RAR отлично умеет. А для delete не задается маска исключения.

George-III Так и сделано, но создается несколько расписаний, проблема в феврале, я несколько однократных расписаний до 2010 года, соответсвенно по 28 и 29 числам, но это не очень удачно, так как потом на каждый следующий год надо дополнять ещё одним заданием...
Конечно надо ещё дожить до 2010, но всё же как-то неприятно от такого "топорного" решения проблемы
Собственно, что именно надо-чтобы работало или чтобы было эстетично и элегантно?
Можно вообще написать один скрипт на WSH, который запускается каждый день, проверяет, не последний ли это день в месяце, после чего производит желаемые действия.
А можно в батнике наколбасить многострочную процедуру для определения того же.
Вопрос лишь в уровне энтузиазма.
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34713869
Фотография George-III
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MZHНасколько знаю, консольные команды move и copy не имеют параметров, позволяющих вытаскивать файлы сразу из всех подкаталогов, что RAR отлично умеет.

Спасибо, но в этом нет необходимости для меня, подкаталоги отсутствуют
Проверю, если процедура без сжатия занимает меньше времени чем копирование, воспользуюсь Вашим советом, спасибо ещё раз
MZHА для delete не задается маска исключения.

Понял, спасибо... Вариант отпадает!
MZH
Собственно, что именно надо-чтобы работало или чтобы было эстетично и элегантно?

Просто думал, что по незнанию нагородил огород, думал можно как-то проще!
MZH
А можно в батнике наколбасить многострочную процедуру для определения того же.
[/quot]
Если не затруднит, можно примерчик?Или ссылку на похожие варианты, подойдет любой вариант, переделаю под себя!
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34713906
MZH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
George-IIIЕсли не затруднит, можно примерчик?Или ссылку на похожие варианты, подойдет любой вариант, переделаю под себя!
Не буду даже пытаться-слишком долго думать над структурой вычисления придется :)
Кстати, в качестве "упрощенного" варианта могу предложить следующее.
Создать в шедулере задание, запускающееся в произвольный день ежемесячно
Создать второе задание, которое запускается ежемесячно первого числа. В скрипте запустить через schtasks изменение дня запуска первого задания на 31-ое число текущего месяца. После этого проверить ERRORLEVEL и, если он ненулевой, попытаться изменить дату на 30, дальше при ненулевом ERRORLEVEL'e попробовать 29-ое и 28-ое.
IMHO, это будет гораздо проще, чем вычислять последний день месяца и позволит ограничиться всего двумя заданиями.
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34713923
MZH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка-изменяемое задание лучше поставить на однократное исполнение и ежемесячно корректировать его дату на последний день текущего месяца.
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34715582
Biz©
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может проще запускать задание в 23:59, сохранять дату, а через пару минут проверять не изменился ли месяц ? время начала задания соответствует условию, время окончания - не оговорено ;)
...
Рейтинг: 0 / 0
Cmd-файл для удаления файлов и запуск его в шедулере
    #34715624
sanek842
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MZH
...
Можно вообще написать один скрипт на WSH, который запускается каждый день, проверяет, не последний ли это день в месяце, после чего производит желаемые действия.
...


это пожалуй лучший вариант

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
var today   = new Date();
var lastday = new Date(today);

lastday.setDate( 1 );
lastday.setMonth(lastday.getMonth()+ 1 );
lastday.setDate(lastday.getDate()- 1 );

// WScript.StdOut.WriteLine(today.toString() + '\n' + lastday.toString());

if ( today.getDate()==lastday.getDate() ) 
{
   var fso, f, fc;  
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder("C:\\test");
   fc = new Enumerator(f.files);
   for (; !fc.atEnd(); fc.moveNext())
    if (!( fc.item().Name == "filename1.txt" ||
           fc.item().Name == "filename2.txt"   ))
   {
      // WScript.StdOut.WriteLine(fc.item());
      fc.item().Delete();
   }  
}
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Cmd-файл для удаления файлов и запуск его в шедулере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]