Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/17: Рейтинг темы: голосов - 17, средняя оценка - 4.88
skiff2140
1 / 1 / 0
Регистрация: 09.12.2013
Сообщений: 5
1

Поиск по маске

09.12.2013, 23:07. Просмотров 3239. Ответов 8
Метки нет (Все метки)

Требуется разработать скрипт для поиска и удаления на заданном диске или в заданной папке всех файлов, имена которых соответствуют заданной маске. Исходные данные должны передаваться через аргументы скрипта. Результат поиска должен фиксироваться в окне типа MS Word.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 23:07
Ответы с готовыми решениями:

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

Поиск по маске с добавлением информации
Требуется разработать скрипт, который бы осуществлял поиск на диске или в...

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

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

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

8
skiff2140
1 / 1 / 0
Регистрация: 09.12.2013
Сообщений: 5
17.12.2013, 19:17  [ТС] 2
помогите пожалуйста, не получается поиск по расширениям ,вроде все работает все выводит в Word, но сам скрипт нужно запускать через командную строку, а там не работает

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Объявляем переменные
var i, n, objArgs, s, args, files, dt, fpath,temp="Рисунок GIF"; 
// Создаем объект WshArguments
objArgs = WScript.Arguments;  
// Определяем общее количество аргументов
n = objArgs.Count();
args = new Array(n);
// цикл по коллекции аргументов
for (i=0; i <= n-1; i++){
    // Записываем в массив
    args[i] = objArgs(i); 
}
fpath=args[0];//путь поиска файлов
files=new Array();
//вызываем функцию поиска файлов, включая подпапки
GetFiles(fpath,files);
 
//вывод в ворд
//путь к шаблону
var PathTempl="D:\\lol.dotx"
//создаем объект Application
var WA=WScript.CreateObject("Word.Application");
//создаем новый документ (шаблон)
var WD=WA.Documents.Add(PathTempl);
//делаем окно Winword видимым
WA.Visible=true;
//максимизируем окно Winword
WA.WindowState=1;
//Получаем ссылку на объект Selection
var Sel=WA.Selection;
//Устанавливаем размер шрифта 12 пт
Sel.Font.Size=12;
//Переходим к закладке NameF
WD.Bookmarks("NameF").Select();
var t1="",t2="",t3="";
//Печать содержимого полей найденных объектов
for (i=0; i!=files.length; i++){    
    t1=files[i].Name+"";
    t2=files[i].DateCreated+"";
    t3=files[i].Size+"";
    //Печатаем поля текущей записи
    Sel.TypeText(t1);
    //Переходим к следующей ячейке таблицы
    WA.Selection.MoveRight(12);
    Sel.TypeText(t2);
    WA.Selection.MoveRight(12);
    Sel.TypeText(t3);
    WA.Selection.MoveRight(12);
}
WD.SaveAs("D:\\lolkin.docx");
 
 
function GetFiles (searchpath, fls)
{
    var FSO, Path, Fold, subFold, allfiles, pushed;
    FSO = WScript.CreateObject("Scripting.FileSystemObject");
// получаем доступ к каталогу
    Fold = FSO.GetFolder(searchpath);
//список файлов в каталоге
    allfiles=Fold.Files;
//список подкаталогов
    subFold=Fold.SubFolders;
//цикл по всем файлам в каталоге
    for(var fl = new Enumerator(allfiles); !fl.atEnd(); fl.moveNext()) {
//если дата создания/модификации файла соответствует критерию поиска, занесем имя в массив
WScript.Echo(fl.item().Type);
        if(fl.item().Type==temp){
        WScript.Echo("норм");
            pushed=fls.push(fl.item());
        }
    }
//цикл по всем подкаталогам
    for(var f = new Enumerator(subFold); !f.atEnd(); f.moveNext()) {
        GetFiles(f.item(),fls);
    }
}
0
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
17.12.2013, 23:16 3
По-моему, очень даже ничего так скрипт.
Единственное, что, если Вам нужно проверять маску для файла, следует использовать метод match:
Javascript
1
if (fl.item().Name.match(temp))
тогда в temp можно будет подставлять что-то наподобие: a*.*.jpg

Цитата Сообщение от skiff2140 Посмотреть сообщение
но сам скрипт нужно запускать через командную строку, а там не работает
А какую ошибку пишет и на какой строке?
0
skiff2140
1 / 1 / 0
Регистрация: 09.12.2013
Сообщений: 5
18.12.2013, 14:09  [ТС] 4
Откуда у строки методы? скинь если не трудно где можно почитать про этот метод .Match

Добавлено через 19 минут
все посмотрел разобрался но if не работает с моей функцией

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Объявляем переменные
var i, n, objArgs, s, args, files, dt, fpath; 
// Создаем объект WshArguments
objArgs = WScript.Arguments;  
// Определяем общее количество аргументов
n = objArgs.Count();
args = new Array(n);
// цикл по коллекции аргументов
for (i=0; i <= n-1; i++){
    // Записываем в массив
    args[i] = objArgs(i); 
}
fpath=args[0];//путь поиска файлов
files=new Array();
//вызываем функцию поиска файлов, включая подпапки
GetFiles(fpath,files);
 
//вывод в ворд
//путь к шаблону
var PathTempl="D:\\Games\\lol.dotx"
//создаем объект Application
var WA=WScript.CreateObject("Word.Application");
//создаем новый документ (шаблон)
var WD=WA.Documents.Add(PathTempl);
//делаем окно Winword видимым
WA.Visible=true;
//максимизируем окно Winword
WA.WindowState=1;
//Получаем ссылку на объект Selection
var Sel=WA.Selection;
//Устанавливаем размер шрифта 12 пт
Sel.Font.Size=12;
//Переходим к закладке NameF
WD.Bookmarks("NameF").Select();
var t1="",t2="",t3="";
//Печать содержимого полей найденных объектов
for (i=0; i!=files.length; i++){    
    t1=files[i].Name+"";
    t2=files[i].DateCreated+"";
    t3=files[i].Size+"";
    //Печатаем поля текущей записи
    Sel.TypeText(t1);
    //Переходим к следующей ячейке таблицы
    WA.Selection.MoveRight(12);
    Sel.TypeText(t2);
    WA.Selection.MoveRight(12);
    Sel.TypeText(t3);
    WA.Selection.MoveRight(12);
}
WD.SaveAs("D:\\Games\\lolkin.docx");
 
 
function GetFiles (searchpath, fls)
{
    var FSO, Path, Fold, subFold, allfiles, pushed;
    FSO = WScript.CreateObject("Scripting.FileSystemObject");
// получаем доступ к каталогу
    Fold = FSO.GetFolder(searchpath);
//список файлов в каталоге
    allfiles=Fold.Files;
//список подкаталогов
    subFold=Fold.SubFolders;
//цикл по всем файлам в каталоге
    for(var fl = new Enumerator(allfiles); !fl.atEnd(); fl.moveNext()) {
//если дата создания/модификации файла соответствует критерию поиска, занесем имя в массив
//WScript.Echo(fl.item().Type);
    for (i=1; i <= n-1; i++){
            if (fl.item().Name.match(".*")==args[i]){
            WScript.Echo("норм");
                pushed=fls.push(fl.item());
                }
    }
    }
//цикл по всем подкаталогам
    for(var f = new Enumerator(subFold); !f.atEnd(); f.moveNext()) {
        GetFiles(f.item(),fls);
    }
}
1
Eva Rosalene
T for Trans-
4050 / 1589 / 303
Регистрация: 06.01.2013
Сообщений: 4,182
Завершенные тесты: 2
18.12.2013, 15:49 5
.match возвращает булевое значение. Не надо сравнивать его с чем-то.
Javascript
1
if (fl.item().Name.match(args[i])){...}
0
skiff2140
1 / 1 / 0
Регистрация: 09.12.2013
Сообщений: 5
19.12.2013, 08:45  [ТС] 6
все равно не работает
0
skiff2140
1 / 1 / 0
Регистрация: 09.12.2013
Сообщений: 5
25.12.2013, 20:40  [ТС] 7
все кому надо рабочая прога с поиском по маске, но так же надо будет создать шаблон dotx, просто в него результат записывается
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// Объявляем переменные
var i, n, objArgs, s, args, files, dt, fpath; 
// Создаем объект WshArguments
objArgs = WScript.Arguments;  
// Определяем общее количество аргументов
n = objArgs.Count();
args = new Array(n);
// цикл по коллекции аргументов
for (i=0; i <= n-1; i++){
    // Записываем в массив
    args[i] = objArgs(i); 
}
fpath=args[1];//путь поиска файлов
files=new Array();
//вызываем функцию поиска файлов, включая подпапки
GetFiles(fpath,files);
 
//вывод в ворд
//путь к шаблону
var PathTempl="F:\\lol.dotx"
//создаем объект Application
var WA=WScript.CreateObject("Word.Application");
//создаем новый документ (шаблон)
var WD=WA.Documents.Add(PathTempl);
//делаем окно Winword видимым
WA.Visible=true;
//максимизируем окно Winword
WA.WindowState=1;
//Получаем ссылку на объект Selection
var Sel=WA.Selection;
//Устанавливаем размер шрифта 12 пт
Sel.Font.Size=12;
//Переходим к закладке NameF
WD.Bookmarks("NameF").Select();
var t1="",t2="",t3="";
//Печать содержимого полей найденных объектов
for (i=0; i!=files.length; i++){    
    t1=files[i]+"";
    t2=files[i].DateCreated+"";
    t3=files[i].Size+"";
    //Печатаем поля текущей записи
    Sel.TypeText(t1);
    //Переходим к следующей ячейке таблицы
    WA.Selection.MoveRight(12);
    Sel.TypeText(t2);
    WA.Selection.MoveRight(12);
    Sel.TypeText(t3);
    WA.Selection.MoveRight(12);
}
WD.SaveAs("F:\\lolkin.docx");
 
 
function GetFiles (searchpath, fls)
{
    var FSO, Path, Fold, subFold, allfiles, pushed;
    FSO = WScript.CreateObject("Scripting.FileSystemObject");
// получаем доступ к каталогу
    Fold = FSO.GetFolder(searchpath);
//список файлов в каталоге                      
    allfiles=Fold.Files;
//список подкаталогов
    subFold=Fold.SubFolders;
//цикл по всем файлам в каталоге
    for(var fl = new Enumerator(allfiles); !fl.atEnd(); fl.moveNext()) {
//если дата создания/модификации файла соответствует критерию поиска, занесем имя в массив
var we = "^"+args[0]+".*\.*.*$"
    RegEx=new RegExp(we,"i");
 
            if (fl.item().Name.match(RegEx)){
            WScript.Echo("норм");
                pushed=fls.push(fl.item());
                }
    
    }
//цикл по всем подкаталогам
    for(var f = new Enumerator(subFold); !f.atEnd(); f.moveNext()) {
        GetFiles(f.item(),fls);
    }
}
0
Dragokas
Эксперт WindowsАвтор FAQ
17009 / 7066 / 856
Регистрация: 25.12.2011
Сообщений: 10,881
Записей в блоге: 16
25.12.2013, 23:29 8
Цитата Сообщение от skiff2140 Посмотреть сообщение
Откуда у строки методы? скинь если не трудно где можно почитать про этот метод .Match
Она в языке JScript не строка, а объект.
Здесь ищи:
http://www.w3schools.com/jsref/default.asp
http://javascript.ru/manual
http://www.spravkaweb.ru/jscript
http://www.ru-jscript.com/
2
Eva Rosalene
T for Trans-
4050 / 1589 / 303
Регистрация: 06.01.2013
Сообщений: 4,182
Завершенные тесты: 2
27.12.2013, 12:37 9
Да, в JS все объекты, даже функции.
1
27.12.2013, 12:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2013, 12:37

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru