Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript

Модерирует : ShIvADeSt

ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

   

lapset

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день!
 
Огромная просьба! Использую скрипт, который удаляет файлы в каталоге старше одного дня, но он не совсем подходит, нужно, что бы из всех файлов по маске Base*.rar удалялись все, кроме последнего.
 
Может есть у кого что-нибудь похожее?

Всего записей: 6 | Зарегистр. 08-09-2008 | Отправлено: 16:21 22-05-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lapset

Цитата:
нужно, что бы из всех файлов по маске Base*.rar удалялись все, кроме последнего.  
 
Может есть у кого что-нибудь похожее?

Попробуем придумать.
Один нюанс - не совсем понятно, что подразумевается под последним. По дате создания, по имени?
 
По имени:

Код:
set fso = createobject("scripting.filesystemobject")
set sha = createobject("shell.application")
set dir = sha.namespace("имя папки")  
set arr = dir.items
arr.filter 192, "Base*.rar"
for i = 0 to arr.count - 2
   fso.deletefile arr.item(i).path
next
 
По дате создания:

Код:
set fso = createobject("scripting.filesystemobject")
set sha = createobject("shell.application")
set dir = sha.namespace("имя папки")  
set arr = dir.items
arr.filter 192, "Base*.rar"
for i = 0 to arr.count - 1
   if i > 0 then
      if fso.getfile(arr.item(i).path).datecreated < tmpdate then
         fso.deletefile arr.item(i).path
      else
         fso.deletefile tmppath
      end if
   end if
   if fso.fileexists(arr.item(i).path) then
      tmpdate = fso.getfile(arr.item(i).path).datecreated
      tmppath = arr.item(i).path
   end if
next

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 07:19 23-05-2009
tatuchipapa

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.  
Неделю пытаюсь ребутнуть точку доступа Wi-Fi. (через телнет не получилось)
 
Вот что получилось после перепрочтения всей ветки:
 

Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
 
WshShell.Run "iexplore.exe 192.168.0.103" , 1
 
WScript.Sleep 3000
 
WshShell.SendKeys "admin{tab}"  
 
WshShell.SendKeys "root{tab}"
 
WshShell.SendKeys "{enter}"
 
WScript.Sleep 3000
 
WshShell.SendKeys "{tab 9} {enter}"
 
WshShell.SendKeys "{tab} {enter}"
 
WshShell.Run "taskkill /im iexplore.exe"

 
Скрипт срабатывает, но по tab не успевает ходить, главное меню в браузере самообновляется с периодичностью примерно 1 сек. Как запретить скриптом самообновление странички и вообще сам скрипт правильный?  
Изменение WScript.Sleep 3000 ничего не даёт.
 
Заранее благодарю!
 
 скрипт для ребута через телнет нехочет закрываться, подскажите скриптологи что упущено.
 

Код:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 100
WshShell.SendKeys "telnet 192.168.0.103{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "admin{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "root{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "Rebt{ENTER}"
WScript.Sleep 100
WshShell.SendKeys "Quit{ENTER}"  

В самом конце пишет - соединение с узлом потеряно.

Всего записей: 48 | Зарегистр. 07-08-2007 | Отправлено: 12:48 23-05-2009 | Исправлено: tatuchipapa, 14:00 23-05-2009
alur2005



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт определяет последний созданный файл , что сюда дописать , что бы скрипт
определял по заданному расширению файлы ???
 

Цитата:
 
 
Dim oFolder
 
Set oFolder = CreateObject("scripting.filesystemobject").getfolder("C:\Backup")
For Each aFile In oFolder.Files
    If sNewest = "" Then
        Set fNewest = aFile
        sNewest = AFile.Name
    Else
        If fNewest.DateCreated < aFile.DateCreated   Then
            Set fNewest = aFile
        End If
    End If
Next
 
 


Всего записей: 824 | Зарегистр. 06-09-2005 | Отправлено: 15:47 23-05-2009 | Исправлено: alur2005, 16:10 23-05-2009
mihmig

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tatuchipapa

Цитата:
Неделю пытаюсь ребутнуть точку доступа Wi-Fi

Рекомендую использовать для этих целей wget
в зависимости от модели точки доступа будет что-то типа:
wget.exe http://192.168.0.1/reboot.html
 
(подсмотрите правильный URL при помощи локального прокси-сервера)

Всего записей: 276 | Зарегистр. 25-09-2007 | Отправлено: 22:14 23-05-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alur2005
Буквально двумя постами выше подобный скрипт я давал. Только немного изменить.

Код:
set fso = createobject("scripting.filesystemobject")  
set sha = createobject("shell.application")  
set dir = sha.namespace("C:\Backup")  
set arr = dir.items  
arr.filter 192, "*.txt"  
for i = 0 to arr.count - 1  
   if i = 0 then
      set fnewest = fso.getfile(arr.item(i).path)
   else
      if fnewest.datecreated < fso.getfile(arr.item(i).path).datecreated then  
         set fnewest = fso.getfile(arr.item(i).path)  
      end if  
   end if  
next
 
Здесь
Код:
arr.filter 192, "*.txt"
Можно любую маску прописать. Напишешь, ну не знаю, например - "?b*.*", отфильтрует те файлы, где вторым символом стоит "B".
Цифры означают сумму флагов.
32 - учитывать папки.
64 - не учитывать папки.
128 - учитывать скрытые элементы.
 

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 00:16 24-05-2009
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alur2005

Цитата:
Скрипт определяет последний созданный файл , что сюда дописать , что бы скрипт
определял по заданному расширению файлы ???

Используем WMI:

Код:
strComputer = "."
strExtension = "bak"
strDrive = "C:"
strPath = "\\Backup\\"
 
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 
Set FileList = objWMIService.ExecQuery _
    ("Select * From CIM_DataFile Where Drive = '" & strDrive & _
     "' AND Path = '" & strPath & "' AND Extension = '" & strExtension & "'")
 
For Each aFile In FileList    
    If sNewest = "" Then
        Set fNewest = aFile
        sNewest = AFile.Name
    Else
        If fNewest.CreationDate < aFile.CreationDate Then
            Set fNewest = aFile
        End If
    End If    
Next

Чтобы искать в подкаталогах, нужно изменить в запросе AND Path = на AND Path LIKE и strPath = "\\Backup\\%"

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 00:44 24-05-2009 | Исправлено: niichavo, 01:11 24-05-2009
tatuchipapa

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mihmig

Цитата:
Рекомендую использовать для этих целей wget

Спасибо читаю!
Проблему практически решил (не без помощи участников конференции),  
Ребут точки это половина задачи. Ребут при зависании точки доступа ECB-3610-S(линк 9км).  
Решение:
 
батник  

Код:
@echo off  
:loop  
ping ya.ru | find "TTL=" 1>nul 2>&1  
if errorlevel 1 (  
  wscript.exe "rebt.vbs"  
  )  
ping -n 61 localhost 1>nul 2>&1  
goto :loop  

скрипт rebt.vbs

Код:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100
WshShell.AppActivate "C:\Windows\system32\cmd.exe"
WScript.Sleep 100
WshShell.SendKeys "telnet 192.168.0.103{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "admin{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "root{ENTER}"
WScript.Sleep 300
WshShell.SendKeys "Rebt{ENTER}"
WScript.Sleep 5000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 10000
WshShell.SendKeys "{ENTER}"
WshShell.SendKeys "exit{ENTER}"

Всего записей: 48 | Зарегистр. 07-08-2007 | Отправлено: 00:47 24-05-2009 | Исправлено: tatuchipapa, 00:48 24-05-2009
Kardinalli



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, можно ли при помощи VBS закрыть апплет запущенный от rundll32.exe? То есть, убить только нужный экземпляр процесса rundll32? Интересуют варианты, основанные НЕ на чтении заголовка окна, а именно на конкретном апплете (в моем случае appwiz.cpl).

Всего записей: 705 | Зарегистр. 22-10-2006 | Отправлено: 01:48 24-05-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сорри, не совсем то... DEL

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 02:32 24-05-2009 | Исправлено: Rush, 03:56 24-05-2009
mihmig

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tatuchipapa
ха! ребут точки при зависании точки? а она при зависании даже на пинги не отвечает...
если только запитать ее от компа (5 вольт) и ребутить сам комп?
 
Kardinalli
Скорее всего нет, т.к. VBS все-таки для целей попроще. Попробуйте парсить вывод tasklist.exe до и после запуска rundll а потом taskkill необходимого pid
Или посмотрите  в сторону WMI

Всего записей: 276 | Зарегистр. 25-09-2007 | Отправлено: 23:02 24-05-2009
tatuchipapa

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mihmig

Цитата:
ха! ребут точки при зависании точки?

Точка действительно останавливается. Т.е. зависает не полностью, пинги есть, но инета нет, помогает только ребут (сигнал 96%, шумы -98dbm, замена точки на такую же из другой партии не помогла, прошивка тоже). Причина остановки передачи данных непонятная, толи в зоне Френеля что-то появилось, толи радиочастот надзор вычисляет. Тоже самое наблюдается и у остальных 6-ти Wi-fi сетях в разных районах. Такая ситуация наблюдается в начале месяца, примерно 1-2 недели. Потом всё нормализуется.

Всего записей: 48 | Зарегистр. 07-08-2007 | Отправлено: 01:39 25-05-2009 | Исправлено: tatuchipapa, 02:53 25-05-2009
lapset

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Rush

Цитата:
По дате создания:  
 
Код:
set fso = createobject("scripting.filesystemobject")  
set sha = createobject("shell.application")  
set dir = sha.namespace("имя папки")  
set arr = dir.items  
arr.filter 192, "Base*.rar"  
for i = 0 to arr.count - 1  
   if i > 0 then  
      if fso.getfile(arr.item(i).path).datecreated < tmpdate then  
         fso.deletefile arr.item(i).path  
      else  
         fso.deletefile tmppath  
      end if  
   end if  
   if fso.fileexists(arr.item(i).path) then  
      tmpdate = fso.getfile(arr.item(i).path).datecreated  
      tmppath = arr.item(i).path  
   end if  
next

 
Спасибо огромное! Работает.

Всего записей: 6 | Зарегистр. 08-09-2008 | Отправлено: 13:08 25-05-2009
SANIOK_AV



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
 
Ситуация такова:
есть ветка реестра... к примеру HKLM\system
нужно дать полный доступ на эту ветку пользователю Sasha
 
можно ли как-то это реализовать с помощью vbs?
 
заранее благодарен!

Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 15:17 26-05-2009
Maza_Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SANIOK_AV
Regperm.exe

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 17:16 26-05-2009
SANIOK_AV



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka, спасибо...
Regperm.exe это как я понял сторонняя утилита... (можно и с помощью SubInACL.exe)
мне бы без сторонних утилит...
   

Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 17:26 26-05-2009
sLap



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SANIOK_AV
без сторонних не получится

Всего записей: 214 | Зарегистр. 31-05-2002 | Отправлено: 04:42 27-05-2009
SANIOK_AV



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sLap
жалько...((

Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 12:19 27-05-2009
mihmig

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SANIOK_AV

Цитата:
нужно дать полный доступ на эту ветку пользователю Sasha  
можно ли как-то это реализовать с помощью vbs?

 
Ну если Вас  сильно напрягает таскать за скриптом subiacl.exe(cacls.exe или regperm)
есть библиотека для использования в vbs-скриптах функций из dll.

Всего записей: 276 | Зарегистр. 25-09-2007 | Отправлено: 12:37 27-05-2009
Serhi84

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Зашел, хотел написать сообщение про доступ к ветке реестра конкретному пользователю, смотрю, последние сообщения как раз по моей теме. Задача такая же - без посторонних утилит и dll(типа subinacl, reginin, adssecurity.dll) с помощью vbs-скрипта дать конкретные права конкретному пользователю домена на ветку реестра. Примеры в инете есть, но все почти используют вспомогательные утилиты или dll. Как то нужно через setsecuritydescriptor попробовать сделать, но по возможности безо всяких вспомогательных программ. Если кто чем сможет помочь - буду премного благодарен

Всего записей: 45 | Зарегистр. 31-01-2008 | Отправлено: 22:27 27-05-2009
   

Страницы: 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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Программирование "удобняшек" на VBScript
ShIvADeSt (12-07-2011 15:12): http://forum.ru-board.com/topic.cgi?forum=33&topic=11963#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru