JScript Почему скрипт выдает ошибку?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
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<df.length;e++) //перебор регулярных выражений
{
re = RegExp(df[e]); //фильтрация по регулярным выражениям
if (re.test(fld))
{
sh.Popup(fld);
fso.DeleteFile(fld,1); //***здесь ошибка вылазит***
}
}
}
}
} Все файлы удаляются как и нужно, остается только один не удаленный файл и вылазит ошибка в функции удаления, пишет что файл не существует, не пойму почему. Даже вон sh.Popup(fld); перед этой функцией поставил, чтобы посмотреть что не так, вроде и параметры входные правильные получает и повторно не вызывается с тем же параметром, так что ей ещё надо?
|
|
|
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; } } }
|
|
|
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;
} + тебе.
|
|
|
|
|