Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

JScript Почему скрипт выдает ошибку?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> JScript Почему скрипт выдает ошибку?
Имя
Сообщение << Старые топики   Новые топики >>
JScript Почему скрипт выдает ошибку? - 2008-11-16 20:43:41.313333   
Archivarius

Сообщений: 164
Оценки: 0
Присоединился: 2008-10-26 00:16:25.630000
Помогите кто-нибудь!!
Пытаюсь тут скрипт написать, который бы файлы по регулярным выражениям удалял из корней дисков.
Вот код:var df=new Array(".*.js",".*.vbs"); var fso,sh,b,fd,fld,re; fso=new ActiveXObject("Scripting.FileSystemObject"); sh=new ActiveXObject("WScript.Shell"); for (var a=new Enumerator(fso.Drives);!a.atEnd();a.moveNext()) //перебор дисков {  b=a.item();  if (b.DriveType==1 || b.DriveType==2) //если диск локальный или съемный  {   fd=fso.GetFolder(b.DriveLetter+":\\");   for (var en=new Enumerator(fd.Files);!en.atEnd();en.moveNext()) //перебор файлов в корне диска   {   fld=en.item();   for (var e=0;e&lt;df.length;e++) //перебор регулярных выражений   {   re = RegExp(df[e]); //фильтрация по регулярным выражениям   if (re.test(fld))    {   sh.Popup(fld);    fso.DeleteFile(fld,1); //***здесь ошибка вылазит***   }   }   }  } }Все файлы удаляются как и нужно, остается только один не удаленный файл и вылазит ошибка в функции удаления, пишет что файл не существует, не пойму почему. Даже вон sh.Popup(fld); перед этой функцией поставил, чтобы посмотреть что не так, вроде и параметры входные правильные получает и повторно не вызывается с тем же параметром, так что ей ещё надо?
Post #: 1
RE: JScript Почему скрипт выдает ошибку? - 2008-11-23 16:13:17.450000   
pipicato

Сообщений: 1
Оценки: 0
Присоединился: 2008-11-23 16:07:37.086666
функция DeleteFile удаляет очищает переменную fld, так что повторно ее использовать в регулярном выражении нельзя,
а она используется когда доходит до второго элемента массива df!!!
можно так
   fld=en.item();
             var del=0;
   for (var e=0;e<df.length;e++) //перебор регулярных выражений
  {
                      if(del==0){
                                      re = RegExp(df[e]); //фильтрация по регулярным выражениям
  if (re.test(fld)) 
  {
  sh.Popup(fld); 
  fso.DeleteFile(fld,1); //***здесь ошибка вылазит***
                                                   del=1;
    }
                               }
   }

Post #: 2
RE: Jsсriрt Почему скрипт выдает ошибку? - 2008-11-24 12:31:56.160000   
Archivarius

Сообщений: 164
Оценки: 0
Присоединился: 2008-10-26 00:16:25.630000

М-м-м.. Вон оно что! Спасибо! Теперь работает.
Даже без дополнительной переменной обошелся:if (re.test(fld)) { sh.Popup(fld);  fso.DeleteFile(fld,true); break; }+ тебе.

Post #: 3
Страниц:  [1]
Все форумы >> [Веб-программинг] >> JScript Почему скрипт выдает ошибку?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.