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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопросы, задачи и их решения по VBScript.

 
Мануал (english, 600 Кб). | Зеркало
MS Scripting 5.6 (700 КБ), включает последнюю версию VBS. Владельцам XP/2000(?) должен быть не нужен. | Зеркало
Немного на wikiпедии.
Предыдущие части: 1
 
Смежные темы:
Сценарии Windows
Командная строка, батники\сценарии (bat, cmd)
Скрипты KiXtart

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:12 12-07-2011 | Исправлено: Smitis, 23:28 26-02-2018
Black_Lung



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

Цитата:
меняй диллера и не кури что попало!

Оказывается нужно курить для этого, не вкурсе, расскажи что и диллера какого брть.
 

Цитата:
разбежался об забор! тебе Option Explicit уже ни о чем не говорит?
....  
Цитата:
переписал интерпретатор
извиняюсь забыл дописать "имхо". Я vbs использую по необходимости и "Option Explicit" мне никогда не было нужно и dim мне нужен только для масива.
 
Vitalka84
Если убрать "as String", то ошибки нет, а можно вообще стоки c dim убрать, имхо, они не нужны без них отлично работает:
 
Подробнее...

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 11:48 15-05-2012 | Исправлено: Black_Lung, 12:48 15-05-2012
Vitalka84

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Black_Lung
Спасибо огромнейшее!!! Действительно работает!!!
Правда если файлов >20, то скрипт отрабатывает довольно таки долго... Может можно как-то разогнать его?

Всего записей: 5 | Зарегистр. 11-05-2012 | Отправлено: 23:09 15-05-2012
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitalka84
во-первых, лучше не использовать неименнованные переменные (запоминать порядок следования аргументов - это абзац), т.е. задать именованные аргументы, вроде:

Код:
With WScript.Arguments.Named
   If .Count <> 2 Then
     WScript.Echo "Error: lost argument."
     WScript.Echo "/s - source folder with input files" & Chr(10) & "/o - output directory"  
     WScript.Echo.Quit(1)
   Else
     Set Excel = WScript.CreateObject("Excel.Application")
     Excel.DisplayAlerts = False
 
     With WScript.CreateObject("Scripting.FileSystemObject")
        For Each file In .GetFolder(Item("s")).Files
           'здесь логика конвертации
        Next
     End With
 
     EXcel.Quit
   End If
End With
в итоге скрипт станет запускать многим проще:
Код:
cscript //nologo //e:vbscript converter.vbs /o:F:\XSLOutput /s:CVSInput
во-вторых, чтобы разогнать скрипт, лучше создать массив входных файлов, а уже после скармливать их Excel'у, потому как тот будет выплевывать xsl'ки в цикле вроде For Each достаточно долго, ведь обрабатываются таким образы файлы последовательно до тех пор, пока не будет достигнуто логическое окончание файлов; если же скармливать ему массив из файлов, то он тупо будет выплевывать подряд xsl-файлы, причем в данном случае будет происходить обращение к ячейкам оперативной памяти, а это повышает мобильность скрипта на 30-40%. в общем, дерзай.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 11:38 16-05-2012
Cyril Konst



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

Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 10:08 23-05-2012
Klondayk7



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго!  
   
Не могу понять почему не перенаправляется выходной поток в файл.  
Вот следующая кострукция не отрабатывает:  
 

Код:
Set WshShell = WScript.CreateObject("WScript.Shell")  
RetCode = WshShell.Run ("ftp -s:" & ftpscript & " >>F.log", , True)  

 
Файл не создается. Что не правильно? Почему?  
Спасибо за помощь.

Всего записей: 13 | Зарегистр. 29-10-2009 | Отправлено: 11:32 24-05-2012
jeykey

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Klondayk7
Надо как-то так:

Код:
 
command = "ftp -s:" & ftpscript"
logfile = "D:\F.log"
 
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec(command)
Set TextStream = WshExec.StdOut
Do
    Str = Str & TextStream.ReadLine() & vbCrLf
Loop Until TextStream.AtEndOfStream
TextStream.Close
 
Set fso = CreateObject("Scripting.FileSystemObject")
Set TextStream = fso.CreateTextFile(logfile)
TextStream.Write(str)
TextStream.Close
 

Всего записей: 21 | Зарегистр. 29-08-2006 | Отправлено: 13:41 24-05-2012
anynamer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, со скриптом который делает это на локальном ПК:
   
 
и другой скрипт, который наоборот заполняет эти данные:
 
IP-адрес: XX.XX.XX.XXX
Маска подсети: 255.255.254.0
Основной шлюз: XX.XX.XX.X
Предпочитаемый DNS: XX.XX.XX.X
Альтернативный DNS: XXX.XXXXX.X
 

Всего записей: 2237 | Зарегистр. 17-05-2010 | Отправлено: 02:28 26-05-2012 | Исправлено: anynamer, 05:24 26-05-2012
jeykey

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
anynamer
динамика
 
статика
 
В скрипте надо указать свои настройки IP и mac-адрес сетевой карты. mac-адрес можно убрать, просто у меня установлен virtualbox и без указания mac скрипт на его виртуальном адаптере тоже меняет настройки.
З.Ы. И, кстати, если установлена семерка, то надо запускать от имени администратора. Я запускал командную строку от имени админа и оттуда уже скрипт. Вот такие костыли)))

Всего записей: 21 | Зарегистр. 29-08-2006 | Отправлено: 12:20 26-05-2012 | Исправлено: jeykey, 12:21 26-05-2012
folta

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос как обычно, странный)
можно ли воссоздать на VBScript гм...алгоритм, который сможет убить все дочерние процессы explorer.exe, не трогая его самого?
запустил-убил-завершил.
если да, буду читать, а так, чего зазря мучаться))

Всего записей: 1177 | Зарегистр. 24-11-2010 | Отправлено: 15:57 26-05-2012
karakurt2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Насколько я знаю, в Windows нет такого соотношения родительский процесс-дочерний процесс как в *NIX. Создавая дочений процесс, вы получаете его дескриптор, который можно опрашивать о состоянии работы запущенного процесса. Можно поместить все процессы в оболочку (не знаю русский термин, по-английски job), которая позволит завершить сразу несколько процессов, находящихся в этой оболочке. Но, разумеется это надо реализовать программно, а большинство дочерних процессов работают автономно, после запуска родительский процесс их не контролирует.

Всего записей: 733 | Зарегистр. 06-12-2003 | Отправлено: 19:27 26-05-2012
anynamer



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jeykey Большое спасибо!
А в этой строке второй диапазон это  Альтернативный DNS ?

Код:
strDNS = Array("000.000.000.000", "000.000.000.000")

Всего записей: 2237 | Зарегистр. 17-05-2010 | Отправлено: 20:39 26-05-2012
jeykey

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

Всего записей: 21 | Зарегистр. 29-08-2006 | Отправлено: 23:00 26-05-2012
mezi



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Всем привет ребята, есть вопрос, не знаю туда ли, ели что подскажите куда
вопрос: есть установчики, автораны, которые копируют свои файлы в буфер(Buffer) - как получить эти файлы вручную или можна ли создать скрипт на любом языке(делфи, инно, VB) ?
всем спасибо

Всего записей: 343 | Зарегистр. 18-12-2010 | Отправлено: 23:02 02-06-2012
korggrodno



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите найти ошибку в скрипте TC_ramtex.vbs
http://www.everfall.com/paste/id.php?e7s8np2jnce3  
Его задача запустить тотал коммандер с нужными правами.
Первый раз после включения компьютера не срабатывает.  
Вылетают вот такие ошибки смотрите скрин.
http://rghost.net/38633784/image.png
Затем вылетает отладчик дефолтный.  
Затем закрываю отладчик и окна ошибок.  
И после этого скрипт работает отлично
до следующего включения компьютера.

Всего записей: 383 | Зарегистр. 15-11-2007 | Отправлено: 12:24 13-06-2012
Black_Lung



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mezi
В сообщении сразу за твоим есть ссылка на пример скрипта vbs.
Вытащить данные из буфера программы с помощю скриптов сложно. Гугли ReadProcessMemory
 
 
korggrodno
Зачем ".\..\" ?

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 15:32 13-06-2012
korggrodno



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну типа выйти из текущей папки на один уровень вверх

Всего записей: 383 | Зарегистр. 15-11-2007 | Отправлено: 18:50 13-06-2012
Black_Lung



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

Цитата:
ну типа выйти из текущей папки

 
возможно из-за этого ошибка, выход -  это "..\"
Почему нельзя просто прописать полный путь?

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 13:26 19-06-2012
korggrodno



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

Цитата:
Black_Lung


Цитата:
возможно из-за этого ошибка, выход -  это "..\"
Почему нельзя просто прописать полный путь?

 
Полный путь нельзя потому что я не знаю где будет лежать мой портативный тотал.
А вообще огромное спасибо.  
Именно в этом и была проблема.  
Помогло.  
Теперь проблемы нету.  
Благодарю.
 

Всего записей: 383 | Зарегистр. 15-11-2007 | Отправлено: 10:14 22-06-2012
kolonium

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
' скрипт для удaления времeнных файлов
On Error Resume Next
 
strFldr = Wscript.arguments.Item(1)
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
ClearFolder strFldr
 
Function ClearFolder(sFldr)
   On Error Resume Next
   Dim oD, cF, cD, oI
 
   Set oD = objFSO.GetFolder(sFldr)
   Set cF = oD.Files
   Set cD = oD.SubFolders
 
   For Each oI In cF
      oI.Attributes = 0
      oI.Delete
   Next
 
   For Each oI In cD
      ClearFolder oI.Path
      oI.Attributes = 0
      oI.Delete
   Next
End Function
*******************
пример запуска (через cmd):
cscript //Nologo C:\cscript.vbs "%HOMEPATH%\Local Settings\Temporary Internet Files\Content.IE5" >MyCleanupScript.Log
 
Cкрипт отрабатывает, но создает пустой лог, как это реализовать и как сделать, чтобы скрипт работал для всех профилей юзеров

Всего записей: 65 | Зарегистр. 27-11-2008 | Отправлено: 03:00 27-06-2012 | Исправлено: kolonium, 10:20 27-06-2012
Black_Lung



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kolonium
arguments.Item нужно поставить 0
Для лога нужен вывод, например wscript.echo "Deleteing.."&oI.Path
Для получения всех профилей можно использовать реестр, значение ProfileImagePath подставлять вместо %HOMEPATH%.

Всего записей: 275 | Зарегистр. 09-10-2008 | Отправлено: 11:56 27-06-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru