Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 10

Поиск, удаление (JScript)

08.12.2013, 18:16. Показов 1968. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется разработать скрипт для поиска и удаления на заданном диске или в папке всех каталогов с заданным диапозоном времени модификации и удалить их. Результат выполнения должен быть выдан в виде отчета в формате Word. Исходные параметры должны показываться отображаться в командной строке.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2013, 18:16
Ответы с готовыми решениями:

JScript поиск файлов по шаблону, вызов других програм
Подскажите пожалуйста, где можно об этом почитать(а то я MSDN изрыл, да так нормального ничего и не нашёл). Мне надо написать...

Удаление записей из БД Access средствами JScript
есть вот такой код filePath = Server.MapPath("../../../BD/IWTS.mdb"); oConn = Server.CreateObject("ADODB.Connection"); ...

Поиск и удаление
Здравствуйте! Есть Файл, в котором находится информация: Нужно сделать удаление по названию страны, после ввода названия страны что бы...

14
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.12.2013, 16:57
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
var folderName = "D:\\FilesSS",
    minDate = "Jan 1 2013 07:00:10", 
    maxDate = "Dec 10 2013 20:00:10",
    FSO = WScript.CreateObject("Scripting.FileSystemObject"),
    Shell = WScript.CreateObject("WScript.Shell"),
    cFolder = WScript.CreateObject("Scripting.FileSystemObject").GetFolder(folderName);
var maxD = new Date(maxDate); var maxMS = maxD.getTime();
var minD = new Date(minDate); var minMS = minD.getTime();
WScript.Echo("Maximal Date: " + maxDate);
WScript.Echo("Minimal Date: " + minDate);
WScript.Echo("Start Folder: " + cFolder);
var log = seekAndDestroy(cFolder, maxMS, minMS);
 
if (!FSO.FileExists("log.doc")) FSO.CreateTextFile("log.doc");
var wordLog = WScript.CreateObject("Word.Application").Documents.Open(Shell.CurrentDirectory + "\\log.doc");
var s = wordLog.Range();
s.Start = s.End;
s.Text = log;
wordLog.Close();
 
 
function seekAndDestroy(folderLink, maxMS, minMS){
 var lx = "";
 for (var eachSub = new Enumerator(folderLink.SubFolders); !eachSub.atEnd(); eachSub.moveNext()){
  var cD = new Date(eachSub.item().DateLastModified); var cMS = cD.getTime();
  timeString = "[" + cD.getHours() + ":" + cD.getMinutes() + "]";
  if ((cMS > minMS) && (cMS < maxMS)) {lx = lx + "\"" + eachSub.item().Path + "\" was deleted at " + timeString + String.fromCharCode(10); eachSub.item().Delete();} 
  else lx = lx + seekAndDestroy(eachSub.item(), maxMS, minMS);
 }
 return(lx);
}
Добавлено через 4 минуты
Заметьте, в каком формате задается дата-время. Это важно!
2
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 10
09.12.2013, 18:39  [ТС]
FraidZZ, извиняюсь за наглость, но как можно прикрутить интерфейс к ней? Чтобы задавать параметры (папку и дату) можно было на примере вот этой проги:



Добавлено через 5 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Explicit
  Dim folder, myDate, fso, objFolder, aFile
 
folder = "C:\tmp"
myDate = InputBox("Введите дату в формате указанном в поле ввода:", "" , "ДД.ММ.ГГГГ") 
 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set objFolder = fso.GetFolder(folder) 
 
  For Each aFile In objFolder.Files 
  If DateDiff("d", aFile.DateLastModified, myDate) = 0 Then aFile.Delete 
  Next 
 
WScript.Quit 0
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.12.2013, 18:57
Вопрос: с консольным интерфейсом (запуск через cscript, запрос прямо в командной строке, или в фоне, тогда запрос через prompt)

Добавлено через 1 минуту
Цитата Сообщение от Serunya163 Посмотреть сообщение
"ДД.ММ.ГГГГ"
Цитата Сообщение от FraidZZ Посмотреть сообщение
JavaScript
2
"Jan 1 2013 07:00:10"
Я если честно не знаю как обозвать такой формат

Добавлено через 13 минут
Так, а кто темку к веб-программистам кинул? Вообще то здесь должен быть раздел VBScript/WSH/WMI
0
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 10
09.12.2013, 19:16  [ТС]
FraidZZ, программа кстати не удаляет файлы в заданном промежутке времени и ничего не записывает в doc файл
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.12.2013, 19:26
Цитата Сообщение от Serunya163 Посмотреть сообщение
FraidZZ, программа кстати не удаляет файлы в заданном промежутке времени и ничего не записывает в doc файл
Странно. У меня удаляет.

Добавлено через 28 секунд
Стоп-стоп, разговор же был про каталоги!

Добавлено через 33 секунды
Если файлы, то в 24 строке замените SubFolders на Files
0
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 10
09.12.2013, 19:27  [ТС]
FraidZZ, хорошо спасибо большое))
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.12.2013, 19:48
Итак, если интерфейс консольный:
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
var folderName,
    minDate,
    maxDate,
    FSO = WScript.CreateObject("Scripting.FileSystemObject"),
    Shell = WScript.CreateObject("WScript.Shell");
WScript.StdOut.Write("Введите минимальную дату: "); minDate = WScript.StdIn.ReadLine();
WScript.StdOut.Write("Введите максимальную дату: ");maxDate = WScript.StdIn.ReadLine();
WScript.StdOut.Write("Введите стартовую директорию: ");folderName = WScript.StdIn.ReadLine();
WScript.Echo("");
var cFolder = WScript.CreateObject("Scripting.FileSystemObject").GetFolder(folderName);
var maxD = new Date(maxDate); var maxMS = maxD.getTime();
var minD = new Date(minDate); var minMS = minD.getTime();
WScript.Echo("Maximal Date: " + maxDate + " (Unix-like: " + maxMS + ")");
WScript.Echo("Minimal Date: " + minDate + " (Unix-like: " + minMS + ")");
WScript.Echo("Start Folder: " + cFolder);
var log = seekAndDestroy(cFolder, maxMS, minMS);
 
if (!FSO.FileExists("log.doc")) FSO.CreateTextFile("log.doc");
var wordLog = WScript.CreateObject("Word.Application").Documents.Open(Shell.CurrentDirectory + "\\log.doc");
var s = wordLog.Range();
s.Start = s.End;
s.Text = log;
wordLog.Close();
 
 
function seekAndDestroy(folderLink, maxMS, minMS){
 var lx = "";
 for (var eachSub = new Enumerator(folderLink.Files); !eachSub.atEnd(); eachSub.moveNext()){
  var cD = new Date(eachSub.item().DateLastModified); var cMS = cD.getTime();
  timeString = "[" + cD.getHours() + ":" + cD.getMinutes() + "]";
  if ((cMS > minMS) && (cMS < maxMS)) {lx = lx + "\"" + eachSub.item().Path + "\" was deleted at " + timeString + String.fromCharCode(10); eachSub.item().Delete();} 
 }
 for (eachSub = new Enumerator(folderLink.SubFolders); !eachSub.atEnd(); eachSub.moveNext()){
  lx = lx + seekAndDestroy(eachSub.item(), maxMS, minMS);
 }
 return(lx);
}
Добавлено через 2 минуты
Вывод консоли:
Code
1
2
3
4
5
6
7
8
C:\Users\1\Desktop>cscript //e:jscript //nologo file.js
Введите минимальную дату: Apr 20 2010 13:20:14
Введите максимальную дату: Jan 18 2015 23:12:11
Введите стартовую директорию: D:\FilesSS
 
Maximal Date: Jan 18 2015 23:12:11 (Unix-like: 1421611931000)
Minimal Date: Apr 20 2010 13:20:14 (Unix-like: 1271758814000)
Start Folder: D:\FilesSS
Вордовский log.doc:
Code
1
2
3
4
"D:\FilesSS\Новая папка\Новый документ Журнала.jnt" was deleted at [19:47]
"D:\FilesSS\Новая папка\Новый текстовый документ.txt" was deleted at [19:47]
"D:\FilesSS\Новая папка (2)\AutoIt v3 Script.au3" was deleted at [19:47]
"D:\FilesSS\Новая папка (3)\Wally Document.wly" was deleted at [19:47]
2
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 5
09.12.2013, 19:56
а можете тоже подсказать? схожее задание
Требуется разработать скрипт, который бы осуществлял поиск на диске или в заданной папке текстовых файлов в соответствии с заданной маской,а затем предлогал пользоваться добавить в них информацию. Результат выполнения должен быть выдан в виде отчета в формате Excel.
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,529
09.12.2013, 22:06
Цитата Сообщение от Serunya163 Посмотреть сообщение
извиняюсь за наглость, но как можно прикрутить интерфейс к ней?
Может hta использовать?
0
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 10
09.12.2013, 23:02  [ТС]
FraidZZ, куда вписывать эту строчку? C:\Users\1\Desktop>cscript //e:jscript //nologo file.js
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.12.2013, 23:08
В командную строку. Удерживая Shift, жмете ПКМ где-то рядом с файлом, выбираете открыть окно команд.
1
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 10
09.12.2013, 23:10  [ТС]
FraidZZ, у меня просто ошибка когда запускаю вторую прогу: строка: 6 Символ: 1 Ошибка неверный дискриптор

Добавлено через 1 минуту
FraidZZ, ура! спасибо большое! )
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.12.2013, 23:10
Угум, дескрипторы stdin / stdout есть только в ктнсольной. Также можете правой кнопкой щелкнуть по файлу и выбрать "Открыть в командной строке"
0
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 10
25.12.2013, 00:52  [ТС]
FraidZZ, происходит рекурсия, но не записывает в 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
var folderName,
    minDate,
    maxDate,
    FSO = WScript.CreateObject("Scripting.FileSystemObject"),
    Shell = WScript.CreateObject("WScript.Shell");
    // объявление переменных
WScript.StdOut.Write("Введите минимальную дату: "); 
minDate = WScript.StdIn.ReadLine();
WScript.StdOut.Write("Введите максимальную дату: ");
maxDate = WScript.StdIn.ReadLine();
WScript.StdOut.Write("Введите стартовую директорию: ");
folderName = WScript.StdIn.ReadLine();
WScript.Echo("");//Вводим мин/макс дату изменения папки и выбираем папку 
var cFolder = WScript.CreateObject("Scripting.FileSystemObject").GetFolder(folderName);
var maxD = new Date(maxDate); 
var maxMS = maxD.getTime();
var minD = new Date(minDate); 
var minMS = minD.getTime();
WScript.Echo("Maximal Date: " + maxDate + " (Unix-like: " + maxMS + ")");
WScript.Echo("Minimal Date: " + minDate + " (Unix-like: " + minMS + ")");
WScript.Echo("Start Folder: " + cFolder);
//вывод исх. данных
 var log = seekAndDestroy(cFolder, maxMS, minMS);
//Запись текста в переменную
 
if (!FSO.FileExists("log.doc")) FSO.CreateTextFile("log.doc");
var wordLog = WScript.CreateObject("Word.Application").Documents.Open(Shell.CurrentDirectory + "\\log.doc");
var s = wordLog.Range();
s.Start = s.End;
s.Text = log;
wordLog.Close();
 //запись даты/времени изменения из переменной в Word файл.
 
function seekAndDestroy(folderLink, maxMS, minMS){
 var lx = "";
 for (var eachSub = new Enumerator(folderLink.SubFolders); !eachSub.atEnd(); eachSub.moveNext())
 {
  var cD = new Date(eachSub.item().DateLastModified); 
  var cMS = cD.getTime();
  timeString = "[" + cD.getHours() + ":" + cD.getMinutes() + "]";
  dateString = eachSub.item().DateCreated;
  if ((cMS > minMS) && (cMS < maxMS)) 
 {
    lx = lx + "\"" + eachSub.item().Path + "\" was deleted at " + timeString + String.fromCharCode(10) + dateString; eachSub.item().Delete();} 
 }
 //если выполняются условия, то происходит запись в заданном формате
for(var f = new Enumerator(folderLink.SubFolders); 
!f.atEnd(); 
f.moveNext()) 
{
    lx = lx +  seekAndDestroy(f.item(), maxMS, minMS);
}
//рекурсия
  return (lx);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2013, 00:52
Помогаю со студенческими работами здесь

Поиск и удаление файлов
Ребят кто может помочь с прогой. Нужно просто чтоб она одним нажатием на кнопку удаляла все файлы по заданному макету(а точнее по...

Поиск и удаление строки
Хочу сделать, что бы при запуске скрипта предлагалось выбрать из списка каталог, в котором будет производится поиск (1- каталог такой то, 2...

Поиск и удаление данных в БД
Требуется создать программу для работы с базой данных. База данных должна храниться в памяти, и выводится в таблицу. Есть некоторые...

Поиск и удаление строки
Пожалуйста, помогите сделать программу, которая находит и удаляет строку, а также всё, что находится выше неё. На VBS нужно, на VBA...

Поиск и удаление файлов
Добрый день. Есть код. int n = 0; //Переменная для счётчика строк в файле списке try { ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru