Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325

Скрипт очистки (перевести с Batch на VBScript)

16.02.2014, 11:46. Показов 1203. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
можно ли сделать аналог батника на vbs ?
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
SetLocal EnableDelayedExpansion
 
set iSumL=0
Set Cnt=0
set "Rash="c:\*.log" "c:\*.temp" "c:\*.tmp""
 
:: Исключаем из удаления файл uninstall.log, иначе не возможно будет удалить Mozilla Firefox
 
for /f "usebackq delims=" %%i in (`dir /b /s /a:-d /a:-h %Rash% 2^>nul ^| findstr /irvc:".*\\V01.*\.log$"`) do (
if /i not "%%i"=="%ProgramFiles%\Mozilla Firefox\uninstall\uninstall.log" (
    2>nul del /q "%%i" | 1>nul findstr "."
    if errorlevel 1 (
    2>nul set /a iSumL +=%%~zi
)))
Set /A Cnt +=%iSumL%
echo %cnt%
pause
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.02.2014, 11:46
Ответы с готовыми решениями:

Перевести код с Batch на VBScript
Добрый вечер. Появилась необходимость перевести несколько скриптов из формата bat/cmd в vbs/js : 1.@echo off chcp 1251 cls set /p...

Перевести скрипт инвентаризации компьютеров из VBScript в VB.NET
Есть скрипт инвентаризации компьютеров в сети: If WScript.Arguments.Count = 1 Then strComputer = WScript.Arguments.Item(0) Else ...

Помогите перевести скрипт с ASP/VBScript в ASP/JScript
Tekst script'a::: <% dim fs,fo,x set fs=Server.CreateObject('Scripting.FileSystemObject') set fo=fs.GetFolder('c: est ')for each...

8
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.04.2014, 17:35
Актуально
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
09.04.2014, 21:08
Можно, конечно, но простынка будет. Я, наверное, даже займусь этим, когда время будет.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.04.2014, 21:38
В отличие от CMD написано без регулярных выражений.
Интересно, быстрее ли работает.

Visual Basic
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
Set oShell = CreateObject("WScript.Shell")
SysDisk = oShell.ExpandEnvironmentStrings("%SystemDrive%")
ProgramFiles = oShell.ExpandEnvironmentStrings("%ProgramFiles%")
MozillaLog = LCase(ProgramFiles & "\Mozilla Firefox\uninstall\uninstall.log")
TotalSize = 0
 
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oSysDrive = oFSO.GetDrive(SysDisk)
Set oFolder = oSysDrive.RootFolder
 
ScanFolder oFolder
 
WScript.Echo "Очищено: " & TotalSize & " Байт."
 
Sub ScanFolder(oFold)
    On Error Resume Next
    Set oFiles = oFold.Files
    If oFold.Attributes >= 1024 Then Exit Sub 'проходим мимо симлинков
    
    For Each oFile In oFiles
        ext = LCase(oFSO.GetExtensionName(oFile.Path))
 
        if ext = "log" or ext = "temp" or ext = "tmp" then
            if not (Lcase(Left(oFile.Name, 3)) = "v01" and ext = "log") then
                if LCase(oFile.Path) <> MozillaLog then
                    iSize = oFile.Size
                    oFile.Delete(true)
                    if Err.Number = 0 then TotalSize = TotalSize + iSize else Err.Clear
                end if
            end if
        end if
    Next
 
    Set oFolders = oFold.Subfolders 'рекурсия
    For Each oSubFolder In oFolders
        ScanFolder oSubFolder
    Next
End Sub
Говори, если нужны комментарии.

Добавлено через 3 минуты
Для доступа ко всем файлам в среде Windows >= Vista потребуется запуск с повышенными привилегиями.
Это в принципе можешь встроить в код.

Для увеличения скорости работы, вероятно, есть смысл исключить из обработки некоторые директории, например те же System32 / Syswow64 / winsxs.
1
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
10.04.2014, 18:55  [ТС]
Протестировал батник и vbs на двух машинах с ХР (с секундомером )
батник отработал за 17 секунд, VBS за 12. Существенного прироста скорости к сожалению не обнаружил
С vbs интуитивно ( не осознанно) понятно, но комментарий был-бы очень кстати.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.04.2014, 20:35
sov44, существенный прирост будет, когда ты введешь дополнительные критерии фильтрации.
В отличие от VBS, в CMD от этого наоборот скорость может пострадать.

Не факт, что мой код достаточно оптимален.
Давай попробуем запустить чисто скан папок без фильтров, чтобы понять сколько времени занимает логическая часть. Скажи сколько времени займет... (для этого закомментируй строки от 21 до 31.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
10.04.2014, 22:06  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Давай попробуем запустить чисто скан папок без фильтров, чтобы понять сколько времени занимает логическая часть. Скажи сколько времени займет... (для этого закомментируй строки от 21 до 31.
Скрипт отработал за 3 сек.
Дополнительных критериев наверное не придумать, ибо должны удаляться все файлы с расширениями temp, tmp, log с любого места системного раздела.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
11.04.2014, 02:28
Цитата Сообщение от sov44 Посмотреть сообщение
Скрипт отработал за 3 сек.
Что у тебя за мега-винда? У меня на винчестере SSD с Win7 около 30 сек. отрабатывает.

В общем, раз так скрипт можно ускорить регулярными выражениями.
Цитата Сообщение от sov44 Посмотреть сообщение
Дополнительных критериев наверное не придумать, ибо должны удаляться все файлы с расширениями temp, tmp, log с любого места системного раздела.
sov44, проверять только те места, где эти файлы создаются,
и наверняка не проверять там, где они никогда не создаются. Может у тебя какая-то особая задумка?
Но большинство чистилок работают именно по базе расположений, а не целом резделе.
0
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
11.04.2014, 06:58  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Что у тебя за мега-винда? У меня на винчестере SSD с Win7 около 30 сек. отрабатывает.
Win XP своей сборки.
А чистильщик вот - http://yadi.sk/d/BKyJsbUGMDpTF

Цитата Сообщение от Dragokas Посмотреть сообщение
проверять только те места, где эти файлы создаются,
и наверняка не проверять там, где они никогда не создаются.
посмотрю логи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.04.2014, 06:58
Помогаю со студенческими работами здесь

Аналог set (Batch) или typedef (Си) в VBScript
Ищу аналог set(.bat) или typedef(Си) на VBS Надеюсь что такое имеется.

Скрипт для очистки Cookie
Народ плиз подскажите, я вообще не программирую на Java, но мне надо установить cookie в 0, то есть полностью очистить куки. Подскажите...

скрипт очистки таблицы в бд phpmyadmin
в интернетах ничего подходящего ненашёл :pardon: подксжите решение

Скрипт очистки строки поиска
Салют!) Поставил строку поиска по сайту. Пример кода: &lt;html&gt; &lt;head&gt; &lt;script language=&quot;javascript&quot;&gt; function...

Скрипт для очистки логов
Всем привет ! Может плохо искал, но не нашел ответ на свой вопрос. Возможно ли создать скрипт, который будет выполнять очистку логов с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru