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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

OSADJAN

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

Код:
Option Explicit
 
Dim objWshShell
Dim objFSO
Dim strParentFolder
 
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
 
strParentFolder = objFSO.GetParentFolderName(WScript.ScriptFullName)
objWshShell.CurrentDirectory = objFSO.GetParentFolderName(strParentFolder)
objFSO.GetFolder(strParentFolder).Delete True
 
Set objFSO = Nothing
Set objWshShell = Nothing
 
WScript.Quit 0

Всего записей: 18 | Зарегистр. 12-02-2011 | Отправлено: 20:18 05-06-2011
fire4x



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

Цитата:
Точно вирусняк делаешь. На просторах интернета примеров полно

А вот ты, видать, в вирусах хорошо разбираешься...

Цитата:
Код:Option Explicit  
 
Dim objWshShell  
Dim objFSO  
Dim strParentFolder  
 
Set objWshShell = WScript.CreateObject("WScript.Shell")  
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")  
 
strParentFolder = objFSO.GetParentFolderName(WScript.ScriptFullName)  
objWshShell.CurrentDirectory = objFSO.GetParentFolderName(strParentFolder)  
objFSO.GetFolder(strParentFolder).Delete True  
 
Set objFSO = Nothing  
Set objWshShell = Nothing  
 
WScript.Quit 0

Можно расписать какие строки за что отвечают?
 

Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 21:00 05-06-2011 | Исправлено: fire4x, 21:01 05-06-2011
OSADJAN

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

Цитата:
Можно расписать какие строки за что отвечают?  


Код:
Option Explicit  
 '--------------------
'объявляем переменные
Dim objWshShell  
Dim objFSO  
Dim strParentFolder  
 '----------------------
'создаём объекты
Set objWshShell = WScript.CreateObject("WScript.Shell")  
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")  
 '----------------------------
'работа с именами
strParentFolder = objFSO.GetParentFolderName(WScript.ScriptFullName)  'полное имя, т.е. - путь + имя: (WScript.ScriptFullName)
objWshShell.CurrentDirectory = objFSO.GetParentFolderName(strParentFolder)  'путь к папке скрипта"strParentFolder)
objFSO.GetFolder(strParentFolder).Delete True  'удаление
'----------------------
'удаляем объекты  
Set objFSO = Nothing  
Set objWshShell = Nothing  
 '--------------------------
'закрываем скрипт
WScript.Quit 0  

Извини, могут быть какие-нибудь неточности..., не теоретик я. Читай справку.
Например :http://www.script-coding.com/WSH.html

Всего записей: 18 | Зарегистр. 12-02-2011 | Отправлено: 02:02 06-06-2011
fire4x



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужен скрипт для транслитерации/смены кодировки в файле.

Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 21:29 17-06-2011
ComradG



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fire4x
если из какой-то конкретной кодировки в другую, то провернуть оное можно, но для всех кодировок разом - едва ли. помнится писал я конвертер на jscript (utf-8 в koir-8), так код занял не один десяток строк. может это подойдет?

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 23:33 17-06-2011 | Исправлено: ComradG, 23:56 17-06-2011
fire4x



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

Цитата:
для всех кодировок разом - едва ли

Т.е. чисто теоретически это возможно, но слишком трудоемко?

Цитата:
если из какой-то конкретной кодировки в другую, то провернуть оное можно

Насчет какой-то конкретной кодировки я еще не определился.

Цитата:
помнится писал я конвертер на jscript (utf-8 в koir-8), так код занял не один десяток строк

Он у вас сохранился? Интресно было бы взглянуть.

Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 00:30 18-06-2011
igor_andreev

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

Цитата:
Он у вас сохранился? Интресно было бы взглянуть.

http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=680#16
 
 

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 01:22 18-06-2011
fire4x



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

Цитата:

Код:
 
If WScript.Arguments.Count = 2 Then  
  Set InputStream = CreateObject("ADODB.Stream")  
      InputStream.Type = 2  
      InputStream.CharSet = "utf-8"  
      InputStream.Open  
      InputStream.LoadFromFile(WScript.Arguments.Item(0))  
      InputFileContents = InputStream.Readtext  
      InputStream.Close  
  Set InputStream = Nothing  
  Set OutputStream = CreateObject("ADODB.Stream")  
      OutputStream.CharSet = "windows-1251"  
      OutputStream.Mode = 3  
      OutputStream.Open  
      OutputStream.WriteText InputFileContents  
      OutputStream.SaveToFile(WScript.Arguments.Item(1))  
      OutputStream.Close  
  Set OutputStream = Nothing  
Else  
  Wscript.Echo "Usage: utf8towin.vbs source-file destination-file"  
End If      
 
Wscript.Quit  
 

 
 
Добавлено:  
Весь список кодировок, поддерживаемых ОС и которые, соответственно можно использовать в качестве  InputStream.CharSet и OutputStream.CharSet, есть в реестре HKEY_CLASSES_ROOT\MIME\Database\Charset, можно извратиться  и сделать универсальный перекодировщик.

Как в этот скрипт добавлять кодировки.
P.S. С vbs не знаком вообще, поэтому объясните по-проще.

Всего записей: 503 | Зарегистр. 25-02-2008 | Отправлено: 20:30 18-06-2011 | Исправлено: fire4x, 20:32 18-06-2011
ComradG



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

Цитата:
vbs не знаком вообще, поэтому объясните по-проще.
как объяснить проще то, что требует хотя бы базовых знаний, что такое потоки? InputStream - входящий поток данных, OutputStream - исходящий; CharSet - выбор кодировки и т.д.
теперь по поводу скрипта, который я некогда писал - если найду, то отправлю. прошу прощение за оффтоп.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 20:53 19-06-2011
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Накидайте скрипт, кому не сложно, задача в следующем:
 
запуститься и сидеть резидентно,
каждые 15 минут проверять, есть ли в процессах *.scr (вроде все хранители экрана такое расширение имеют?), если его нет то запустить экзешник с параметрами, если есть, то ждать еще 15 минут и так покругу...
 
 
Кстати, правильно понимаю,  что при этом "On error resume next", в случае любых ошибок юзер никакого интерактива не увидит?
 

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 15:55 20-06-2011
gap5



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну хотя бы сориентируйте по отслеживанию в процессах *.scr

Всего записей: 1033 | Зарегистр. 30-05-2006 | Отправлено: 18:05 21-06-2011
GepardSD

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как в операционной системе Windows XP: 1) автоматически создать папки с порядковым номером от 1 до 999 и 2) поместить в каждую папку пустой файл index.php. С первой задачей я вроде бы справился:
==================
Option Explicit  
 Dim FSO, i  
 Set FSO = CreateObject("Scripting.FileSystemObject")  
 For i = 1 To 999  
   FSO.CreateFolder i  
 Next  
 Set FSO = Nothing  
 WScript.Quit
==================
а создать файл в каждой папке не знаю как. Поделитесь.

Всего записей: 18 | Зарегистр. 22-09-2008 | Отправлено: 01:42 23-06-2011
0fantom



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, как на сервере (win2003) определить имя клиента запустившего сеанс RDP? (с какого компа зашли в терминал) Заранее спасибо.

Всего записей: 47 | Зарегистр. 21-04-2007 | Отправлено: 12:46 23-06-2011
quakerock



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

Цитата:
Подскажите как в операционной системе Windows XP: 1) автоматически создать папки с порядковым номером от 1 до 999 и 2) поместить в каждую папку пустой файл index.php. С первой задачей я вроде бы справился:
==================
Option Explicit  
 Dim FSO, i  
 Set FSO = CreateObject("Scripting.FileSystemObject")  
 For i = 1 To 999  
   FSO.CreateFolder i  
 Next  
 Set FSO = Nothing  
 WScript.Quit
==================
а создать файл в каждой папке не знаю как. Поделитесь.

 
Вот такой вариант

Код:
Option Explicit  
 Dim FSO, i, f, fc, f1  
 Set FSO = CreateObject("Scripting.FileSystemObject")  
 For i = 1 To 9
   FSO.CreateFolder i  
 Next  
   Set FSO = Nothing  
 
Set FSO = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("D:\")
Set fc = f.SubFolders
For Each f1 in fc
f1.CreateTextFile("Привет.php")
Next
WScript.Quit

 
Папки у тебя создаются там, откуда запускается скрипт. Что бы файлы *.php создавались в созданные папки сам скрипт должен лежать по указанному пути "D:\".
Как все это провернуть из директории запуска без жесткого прописывания путей не допер=), но думаю, если это возможно, то подскажут.
 

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 13:36 23-06-2011 | Исправлено: quakerock, 14:04 23-06-2011
efrik

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


Цитата:
Подскажите, как на сервере (win2003) определить имя клиента запустившего сеанс RDP? (с какого компа зашли в терминал) Заранее спасибо.

 

Код:
set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "Вы зашли с " & WshShell.ExpandEnvironmentStrings("%ClientName%")
 

Всего записей: 8 | Зарегистр. 23-08-2005 | Отправлено: 15:07 23-06-2011
Evgeny972



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

Цитата:
Option Explicit  
 Dim FSO, i  
 Set FSO = CreateObject("Scripting.FileSystemObject")  
 For i = 1 To 999  
   FSO.CreateFolder i  
 Next  
 Set FSO = Nothing  
 WScript.Quit  
==================

FSO.CreateFolder i заменить на Set CurFolder = FSO.CreateFolder i
А дальше, по моему, ясно: ты имеешь объект Folder, можешь получить путь к нему, например:  
CurFolderPath = CurFolder.Path
или создать файл CreateTextFile Method

Цитата:
object  
Required. Always the name of a FileSystemObject or Folder object.


Всего записей: 15511 | Зарегистр. 23-08-2002 | Отправлено: 16:38 23-06-2011 | Исправлено: Evgeny972, 16:43 23-06-2011
quakerock



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

Цитата:
FSO.CreateFolder i заменить на Set CurFolder = FSO.CreateFolder i
А дальше, по моему, ясно: ты имеешь объект Folder, можешь получить путь к нему, например:  
CurFolderPath = CurFolder.Path  

 
У мну что-то не получается по твоему)= покажи плз.
 
Сделал вот так... Папки и файлы создаются там, где лежит скрипт. Но есть одно но, которое может не устроить: если в директории, где лежит скрипт есть другие папки, то файлы добавятся и туда, а не только в созданные.)=
 

Код:
Option Explicit  
 Dim FSO, i, f, fc, f1, ParentFolder  
 Set FSO = CreateObject("Scripting.FileSystemObject")  
 For i = 1 To 9
   FSO.CreateFolder i  
Next  
   ParentFolder = FSO.GetParentFolderName(WScript.ScriptFullName)
 Set f = fso.GetFolder(ParentFolder)
 Set fc = f.SubFolders
 For Each f1 in fc
   f1.CreateTextFile("Привет.php")
Next
Set Fso = Nothing
WScript.Quit

 
 

Всего записей: 29 | Зарегистр. 08-07-2009 | Отправлено: 13:54 24-06-2011
ComradG



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

Цитата:
Но есть одно но, которое может не устроить
дык ведь никто не запрещает промапить папку на наличие оных каталогов, прикрутив дополнительную проверку, например, таким образом: создаем массив из названий папок, а далее запускаем цикл проверки, и если папка с передаваемым именем уже существует, назвать создаваемый каталог как-то иначе. тем паче, что конструкции стандартные: objFSO.GetFolder(...), Do ... Until, If ... Then - сложности не должны вызвать даже у новичков.

Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 19:11 24-06-2011
Evgeny972



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GepardSD quakerock
Цитата:
покажи плз
В папке E:\Test лежит файлец test.vbs

с таким содержимым (жирным отличия от исходного GepardSD):
Код:
Option Explicit
 Dim FSO, i, CurFolder, MyFile
 Set FSO = CreateObject("Scripting.FileSystemObject")
 For i = 1 To 19
   Set CurFolder = FSO.CreateFolder(i)
   Set MyFile = CurFolder.CreateTextFile("index.php", True)
   MyFile.Close

 Next
 Set FSO = Nothing
 WScript.Quit
 
После запуска имеем

По-моему, то, что вы хотели
Папки создаются в папке, откуда запускается скрипт. При желании это легко меняется изменением FSO.CreateFolder(i) (или уж совсем по умному + опциональный параметр запуска: если его нет, папки создаются в папке, где запускается скрипт; если есть: <путь_в_параметре_запуска>\i)

Всего записей: 15511 | Зарегистр. 23-08-2002 | Отправлено: 12:04 26-06-2011 | Исправлено: Evgeny972, 15:46 26-06-2011
AKBA

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем добрый вечер/день/утро!
 
Мне требуется решить вот такую проблему:
1 - имеется документ MS Word
2 - он состоит из двух страниц
3 - на первой странице документа в четырех местах имеется шифр вида хххххх
4 - этот шифр необходимо менять в арифметической последовательности хххххх+1, а остальной текст оставлять без изменений
 
Что можно сделать такое, чтобы я например, забивал первый и последний номер шифра, нажимал печать и документ автоматически бы распечатывался на одном листе с двух сторон в необходимом количестве экземпляров?

Всего записей: 68 | Зарегистр. 30-09-2007 | Отправлено: 21:14 26-06-2011 | Исправлено: AKBA, 21:15 26-06-2011
   

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