Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / Cmd-файл для удаления файлов и запуск его в шедулере / 9 сообщений из 9, страница 1 из 1
08.08.2007, 08:48:40
    #34712718
George-III
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cmd-файл для удаления файлов и запуск его в шедулере
Всем привет, не знаю как реализовать, необходимо запускать командный файлик, который будет проверять в папках наличие файлов только с определенным названием и расширением, всё остальное необходимо удалять... Кроме того, его надо запускать используя стандартный планировщик заданий win2003/xp только в последний день месяца(!!!).Подскажите пожалуйста!
...
Рейтинг: 0 / 0
08.08.2007, 12:25:23
    #34713446
MZH
MZH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cmd-файл для удаления файлов и запуск его в шедулере
К чему сказано про проверку наличия? Быть может, надо просто удалять все, что не соответствует маске?
Можно, например, при помощи RAR упаковать все нужные файлы, а все остальные потереть нафиг, после чего упакованные восстановить обратно.
А что касается запуска в последний день месяца, то это легко решается созданием 4 различных заданий, группирующих месяцы с одинаковой продолжительностью.
...
Рейтинг: 0 / 0
08.08.2007, 13:31:21
    #34713780
George-III
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cmd-файл для удаления файлов и запуск его в шедулере
MZHК чему сказано про проверку наличия? Быть может, надо просто удалять все, что не соответствует маске?

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

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

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

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

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

Просто думал, что по незнанию нагородил огород, думал можно как-то проще!
MZH
А можно в батнике наколбасить многострочную процедуру для определения того же.
[/quot]
Если не затруднит, можно примерчик?Или ссылку на похожие варианты, подойдет любой вариант, переделаю под себя!
...
Рейтинг: 0 / 0
08.08.2007, 14:02:08
    #34713906
MZH
MZH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cmd-файл для удаления файлов и запуск его в шедулере
George-IIIЕсли не затруднит, можно примерчик?Или ссылку на похожие варианты, подойдет любой вариант, переделаю под себя!
Не буду даже пытаться-слишком долго думать над структурой вычисления придется :)
Кстати, в качестве "упрощенного" варианта могу предложить следующее.
Создать в шедулере задание, запускающееся в произвольный день ежемесячно
Создать второе задание, которое запускается ежемесячно первого числа. В скрипте запустить через schtasks изменение дня запуска первого задания на 31-ое число текущего месяца. После этого проверить ERRORLEVEL и, если он ненулевой, попытаться изменить дату на 30, дальше при ненулевом ERRORLEVEL'e попробовать 29-ое и 28-ое.
IMHO, это будет гораздо проще, чем вычислять последний день месяца и позволит ограничиться всего двумя заданиями.
...
Рейтинг: 0 / 0
08.08.2007, 14:06:22
    #34713923
MZH
MZH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cmd-файл для удаления файлов и запуск его в шедулере
Поправка-изменяемое задание лучше поставить на однократное исполнение и ежемесячно корректировать его дату на последний день текущего месяца.
...
Рейтинг: 0 / 0
09.08.2007, 06:53:05
    #34715582
Biz©
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cmd-файл для удаления файлов и запуск его в шедулере
может проще запускать задание в 23:59, сохранять дату, а через пару минут проверять не изменился ли месяц ? время начала задания соответствует условию, время окончания - не оговорено ;)
...
Рейтинг: 0 / 0
09.08.2007, 07:53:48
    #34715624
sanek842
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Cmd-файл для удаления файлов и запуск его в шедулере
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
Форумы / Windows [игнор отключен] [закрыт для гостей] / Cmd-файл для удаления файлов и запуск его в шедулере / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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