Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Пакетная индексация содержимого папки

Ответить
Настройки темы
VBS/WSH/JS - [решено] Пакетная индексация содержимого папки

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


Имеется код позволяющий в папке D:\test проиндексировать все содержащиеся в ней субпапки всех уровней вложения и выложить результат в файл scan_tree.txt помещаемый в папку где находится файл с кодом:
Код: Выделить весь код
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fn = "scan_tree.txt";
var f = fso.CreateTextFile(fn,true,true);
var main_folder_path="D:\\test";
var main_folder = fso.GetFolder(main_folder_path);
DirWithSubFolders(main_folder);
// ================================================================
function DirWithSubFolders(_folder){
if(_folder.Attributes & 2) {return} //(пропускаем скрытые файлы)
var more_folders = new Enumerator(_folder.SubFolders);
for (;!more_folders.atEnd();more_folders.moveNext()){
OneFolder = more_folders.item();
f.writeline(OneFolder.Path);
DirWithSubFolders (OneFolder);
}}
Требуется преобразовать его в код исполняющий эту задачу пакетно т.е. в отношении набора папок, перечисленного в файле D:\test.txt:
-------------
D:\test
D:\xyz\abc
......
-------------
с размещением итогов по каждой такой папке в отдельном индексном файле:
D:\test\scan_tree.txt
D:\xyz\abc\scan_tree.txt
......

Отправлено: 21:50, 27-10-2020

 

Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


нашлось решение этой интересной, на мой взгляд, задачи:
https://www.cyberforum.ru/vbscript-w...l#post14951684

А вот это мое:
Код: Выделить весь код
var fso = new ActiveXObject("Scripting.FileSystemObject");
var list = fso.OpenTextFile("D:\\test.txt", 1, true);            
var str = list.ReadAll();
//создается массив строк файла-списка
var elm = str.replace(/\r/g, '').split('\n');       
list.Close();
var myEnum = new Enumerator(elm);
for (i=0; !myEnum.atEnd(); myEnum.moveNext()){
fScan(myEnum.item())
function fScan(main_folder_path) {
var fn = myEnum.item()+"\\scan_tree.txt";
var f = fso.CreateTextFile(fn,true,true);
var main_folder = fso.GetFolder(main_folder_path);
DirWithSubFolders(main_folder);
// ================================================================
function DirWithSubFolders(_folder){
if(_folder.Attributes & 2) {return} //(пропускаем скрытые файлы)
var more_folders = new Enumerator(_folder.SubFolders);
for (;!more_folders.atEnd(); more_folders.moveNext()){
OneFolder = more_folders.item();
f.writeline(OneFolder.Path);
DirWithSubFolders (OneFolder);
}}}}
WScript.Echo("Finish");

Отправлено: 21:53, 28-10-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


Цитата ruslaw:
этой интересной, на мой взгляд, задачи: »
А на мой взгляд, эта задача интересна только извращенцам WSH. Потому что на PowerShell решается элементарным ванлайнером
Код: Выделить весь код
Get-Content -Path input.txt | Foreach-Object {Get-ChildItem -recurse $_ | Out-File -Append -Path scan_tree.txt}
В нюансы опубликованного вами кода не вникал, только в описание задачи.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:17, 28-10-2020 | #3


Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


Возможно Вы правы, но PS это целый мир ...

Отправлено: 22:18, 28-10-2020 | #4


(*.*)


Сообщения: 36491
Благодарности: 6675

Профиль | Сайт | Отправить PM | Цитировать


ruslaw, и это повод его изучать, все равно вы WSH не владеете, судя по вопросу.

Отправлено: 22:25, 28-10-2020 | #5


Пользователь


Сообщения: 87
Благодарности: 0

Профиль | Отправить PM | Цитировать


у меня спорадические ограниченные задачи, для меня такое поведение было бы нерентабельным
Но Ваш пример убедителен ...

Отправлено: 22:37, 28-10-2020 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Пакетная индексация содержимого папки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Архивация содержимого папки по размеру irvicon Скриптовые языки администрирования Windows 13 25-11-2015 14:58
Доступ - Запрет на печать содержимого папки SanCho Microsoft Windows 7 3 15-05-2012 17:32
[решено] запрет просмотра содержимого папки dimds Microsoft Windows NT/2000/2003 4 25-03-2011 09:43
Разное - [решено] удаление содержимого папки \RECYCLER black dragon Microsoft Windows 2000/XP 27 26-06-2009 13:21
Ограничить размер содержимого папки clin Microsoft Windows NT/2000/2003 6 12-12-2008 13:55




 
Переход