Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/229: Рейтинг темы: голосов - 229, средняя оценка - 4.92
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16

Простые примеры работы со скриптами

24.08.2013, 01:51. Показов 44190. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Публикуем здесь:
- часто используемые;
- наиболее простые
примеры работы с объектами.


Получение пути к папке, в которой запущен скрипт

(почему-то всегда лень это писать)

Visual Basic
curPath = WScript.ScriptFullname: curPath = left(curPath, instrrev(curPath, "\"))
или
Visual Basic
cur = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.08.2013, 01:51
Ответы с готовыми решениями:

C# и база данных в 1с(нужны простые примеры работы)
Добрый день, добрые люди :) Мне нужно очень срочно сделать программу для получения данных из базы 1с(v8) и корректирование самой базы ...

Простые примеры Canvas
Доброго времени суток! Есть у кого ни будь примеры циклической анимации на Канве ?? Нужно сделать простое движение бесшовной текстуры по X...

Простые примеры прокси-классов
Приведите, пожалуйста, примеры прокси-классов.

9
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
27.08.2013, 00:36
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
'Проверка доступности сетевой станции путём "пингования".
'Функция пригодна для использования и в консольном, и в графическом режимах
'(режимом по умолчанию является графический).
 
Function Available(strName, blnIsCon)
If blnIsCon Then
    Dim objExec, objOutStream, strTemp
    Set objExec = CreateObject("WScript.Shell").Exec("ping -n 1 -w 130 " & strName)
    Set objOutStream = objExec.StdOut
    While Not objOutStream.AtEndOfStream
        strTemp = strTemp & Trim(objOutStream.ReadLine())
    Wend
    Set objOutStream = Nothing
    Set objExec = Nothing
    If InStr(1, strTemp, "TTL", vbTextCompare) > 0 Then
        Available = True
    Else
        Available = False
    End If
Else
    Dim objWMI, objItem
    Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("SELECT StatusCode FROM Win32_PingStatus WHERE Address='" & strName & "'")
    For Each objItem In objWMI
        If IsNull(objItem.StatusCode) Then
            Available = False
        Else
            Available = (objItem.StatusCode = 0)
        End If
    Next
    Set objItem = Nothing
    Set objWMI = Nothing
End If
End Function
Добавлено через 1 минуту
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
'Определение того, подключен ли в качестве сетевого тома заданный UNC-путь.
 
Function Find_NetworkDrive(ByVal strPath)
'strPath - искомый UNC-путь, например "\\Server\MyFolder"
Dim strNames
 
strPath = Replace(strPath, "\", "\\")
On Error Resume Next
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set objCollection = objWMI.ExecQuery("SELECT DeviceID FROM Win32_LogicalDisk WHERE DriveType=4 AND ProviderName='" & strPath & "'")
If Err.Number = 0 Then
    If objCollection.Count > 0 Then
        For Each objItem In objCollection
            If Len(objItem.DeviceID) > 0 Then
                strNames = strNames & objItem.DeviceID
                Exit For
            End If
        Next
        Set objItem = Nothing
        Find_NetworkDrive = strNames
    End If
Else
    Err.Clear
End If
Set objCollection = Nothing
Set objWMI = Nothing
On Error GoTo 0
End Function
Добавлено через 51 секунду
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
'Поиск свободной литеры для назначения подключаемому сетевому тому.
 
Function Free_Letter()
Dim objWMI, objCollection, objItem
Dim arrTemp(22), intShift, intTemp, i, blnHasLetter
 
intShift = Asc("D")
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set objCollection = objWMI.ExecQuery("SELECT DeviceID FROM Win32_LogicalDisk")
For Each objItem In objCollection
    intTemp = Asc(UCase(objItem.DeviceID)) - intShift
    If intTemp >= 0 And intTemp <= UBound(arrTemp) Then arrTemp(intTemp) = True
Next
Set objItem = Nothing
Set objCollection = Nothing
Set objWMI = Nothing
For i = 0 To UBound(arrTemp)
    If Not arrTemp(i) Then
        blnHasLetter = True
        Exit For
    End If
Next
If blnHasLetter Then
    Free_Letter = Chr(i + intShift)
Else
    Free_Letter = vbNullString
End If
Erase arrTemp
End Function
Добавлено через 1 минуту
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
39
40
41
42
43
'Определение владельца заданного объекта файловой системы.
 
Function Get_Owner_FSO(strPath, strWS)
Dim objWMI, objSecSettings, objSD, objFS
Dim strPathWMI, strResult, strTemp
strPathWMI = Replace(strPath, "\", "\\", 1, -1, vbTextCompare)
On Error Resume Next
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strWS & "\root\CIMV2")
If Err.Number = 0 Then
    Set objFS = CreateObject("Scripting.FileSystemObject")
    strTemp = objFS.GetDrive(Left(strPath, 2)).FileSystem
    Set objFS = Nothing
    If Err.Number = 0 Then
        If StrComp(strTemp, "NTFS", vbTextCompare) = 0 Then
            Set objSecSettings = objWMI.Get("Win32_LogicalFileSecuritySetting.Path='" & strPathWMI & "'")
            If Err.Number = 0 Then
                If objSecSettings.GetSecurityDescriptor(objSD) = 0 Then
                    strResult = objSD.Owner.Domain & "\" & objSD.Owner.Name
                Else
                    strResult = "Не удалось прочитать дескриптор безопасности объекта."
                End If
                Set objSD = Nothing
            Else
                strResult = "Ошибка " & Err.Number & " при обращении к объекту." & vbNewLine & Err.Description
                Err.Clear
            End If
            Set objSecSettings = Nothing
        Else
            strResult = "Файловая система " & UCase(strTemp) & " не поддерживается."
        End If
    Else
        strResult = "Ошибка " & Err.Number & " при определении типа файловой системы." & vbNewLine & Err.Description
        Err.Clear
    End If
Else
    strResult = "Ошибка " & Err.Number & " при подключении к WMI-пространству." & vbNewLine & Err.Description
    Err.Clear
End If
Set objWMI = Nothing
On Error GoTo 0
Get_Owner_FSO = strResult
End Function
Добавлено через 1 час 24 минуты
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'Сортировка одномерного массива методом "пузырька" (оптимизированная).
 
Function Sorting_Array_Buble(arrData)
Dim xItem, i, j, blnFlag
 
For i = 0 To UBound(arrData) - 1
    blnFlag = False
    For j = 0 To UBound(arrData) - 1
        If arrData(j) > arrData(j + 1) Then
            xItem = arrData(j)
            arrData(j) = arrData(j + 1)
            arrData(j + 1) = xItem
            blnFlag = True
        End If
        intCounter2 = intCounter2 + 1
    Next
    If Not blnFlag Then Exit For
Next
End Function
3
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
31.08.2013, 02:39
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'Сортировка одномерного массива методом вставок.
 
Function Sorting_ByInserts(arrTemp)
Dim i, j, xItem
For i = 1 To UBound(arrTemp)
    For j = i To 1 Step -1
        If arrTemp(j) < arrTemp(j - 1) Then
            xItem = arrTemp(j)
            arrTemp(j) = arrTemp(j - 1)
            arrTemp(j - 1) = xItem
        Else
            Exit For
        End If
    Next
Next
End Function
Добавлено через 3 часа 26 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
'Определение хозяина FSMO-роли "Эмулятор PDC".
 
Function Get_PDC()
Dim objRoot, objNtds, strPDC
On Error Resume Next
Set objRoot = GetObject("LDAP://rootDSE")
Set objNtds = GetObject("LDAP://" & GetObject("LDAP://" & objRoot.Get("defaultNamingContext")).Get("fSMORoleOwner"))
strPDC = Mid(GetObject(objNtds.Parent).Name, 4)
Set objNtds = Nothing: Set objRoot = Nothing
If Err.Number <> 0 Then Err.Clear
On Error GoTo 0
Get_PDC = strPDC
End Function
0
2619 / 549 / 109
Регистрация: 21.03.2012
Сообщений: 1,051
03.09.2013, 21:31
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
'Определение того, является ли текущий компьютер контроллером домена
 
Function IsDC()
Dim objWMI, objCollection, objItem
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set objCollection = objWMI.ExecQuery("SELECT DomainRole FROM Win32_ComputerSystem")
For Each objItem In objCollection
    IsDC = (objItem.DomainRole > 3)
Next
Set objItem = Nothing: Set objCollection = Nothing: Set objWMI = Nothing
End Function
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
16.09.2013, 14:49  [ТС]
Использование методов Net.FrameWork в VBScript

Еще пример
Для тех, кто не понял, что означает суффикс _цифра - это идентификатор перегрузки метода.
К сожалению, он не совпадает с порядком, указанным в выпадающем списке Visual Studio, поэтому определяется путем подбора , пока никто не придумает, как-то иначе.

Ссылки по теме:
http://technet.microsoft.com/e... ngguy.aspx
http://msdn.microsoft.com/en-u... ww439.aspx
2
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
31.12.2013, 18:54  [ТС]
Получение данных из буфера обмена
Спасибо: 785584

Visual Basic
1
2
Set objHTML = CreateObject("htmlfile")
ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text")
3
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
15.07.2014, 13:47  [ТС]
Удалить все папки, кроме указанных (с протоколированием)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
02.02.2015, 13:29  [ТС]
Определить ProcessID текущего запущенного скрипта.
0
1 / 1 / 0
Регистрация: 12.06.2015
Сообщений: 67
06.10.2022, 06:14
Несколько простых функций VBScript.
.
Visual Basic
1
2
3
4
5
6
Function AddSlash(fString)
  AddSlash = fString
  If Len(fString) <> InStrRev(fString, "\") Then
    AddSlash = fString & "\"
  End If
End Function
.
Visual Basic
1
2
3
4
5
6
7
Function AddChr34(fString)
  AddChr34 = fString
  If InStr(fString, Chr(34)) <> 1 and _
     InStrRev(fString, Chr(34)) <> Len(fString) Then
    AddChr34 = Chr(34) & fString & Chr(34)
  End If
End Function
.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function GetScriptBaseName()
  Dim posStr
  Dim tmpStr
  tmpStr = WScript.ScriptFullName
  posStr = InStrRev(tmpStr, "\")
  tmpStr = Mid(tmpStr, posStr + 1)
  posStr = InStrRev(tmpStr, ".")
  If posStr > 0 Then
    GetScriptBaseName = Left(tmpStr, posStr - 1)
  Else 
    GetScriptBaseName = posStr
  End If
  posStr = Empty
  tmpStr = Empty
End Function
.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function GetScriptBaseExt()
  Dim posStr
  Dim tmpStr
  tmpStr = WScript.ScriptFullName
  posStr = InStrRev(tmpStr, "\")
  tmpStr = Mid(tmpStr, posStr + 1)
  posStr = InStrRev(tmpStr, ".")
  If posStr > 0 Then
    GetScriptBaseExt = Right(tmpStr, Len(tmpStr) - posStr)
  Else
    GetScriptBaseExt = ""
  End If
  posStr = Empty
  tmpStr = Empty
End Function
.
Visual Basic
1
2
3
4
5
6
Function GetScriptBaseDir()
  Dim tmpStr
  tmpStr = WScript.ScriptFullName
  GetScriptBaseDir = Left(tmpStr, InStrRev(tmpStr, "\") - 1)
  tmpStr = Empty
End Function
.
Visual Basic
1
2
3
4
5
6
Function GetScriptHostName()
  Dim tmpStr
  tmpStr = WScript.FullName
  GetScriptHostName = Mid(tmpStr, InStrRev(tmpStr, "\") + 1)
  tmpStr = Empty
End Function
.
0
1 / 1 / 0
Регистрация: 12.06.2015
Сообщений: 67
06.10.2022, 12:22
Несколько простых функций VBScript.
.
Visual Basic
1
2
3
4
5
6
Function DeleteSlash(fString)
  DeleteSlash = fString
  If Len(fString) = InStrRev(fString, "\") Then
    DeleteSlash = Mid(fString, 1, Len(fString) - 1)
  End If
End Function
.
Visual Basic
1
2
3
4
5
6
7
Function DeleteChr34(fString)
  DeleteChr34 = fString
  If InStr(fString, Chr(34)) = 1 and _
     InStrRev(fString, Chr(34)) = Len(fString) Then
    DeleteChr34 = Mid(fString, 1 + 1, Len(fString) - 1)
  End If
End Function
.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2022, 12:22
Помогаю со студенческими работами здесь

Простые примеры программ на рекурсию
Всем привет! У кого есть простые примеры программ на рекурсию, забросьте пожалуйста!!!

Простые примеры программ клиента и сервера
Доброго времени суток нужны простые программы клиента и сервера. например - клиент приконектился к серверу. сервер отдал ему файл ххх в...

Есть простые примеры реализации epoll на C/C++?
Настраиваю неблокирующие сокеты... Читаю/отправляю небольшие посылки... А вот когда дело касается больших пакетов, то, как я понимаю, нужно...

Простые примеры хороших ООП - проектов на c#
Здравствуйте! Хотел бы в академических целях разобрать несколько простых ООП-проектов на C#, но не могу их найти в сети. Большинство...

Нужен сис админ для работы в команде - у менее работать с открытыми скриптами и кодами
пишите в лс - работа на дому -оклад


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru