как создать vbs скрипт

Как создавать скрипты с помощью Блокнота в Windows 10

Публикация: 17 Декабрь 2019 Обновлено: 17 Декабрь 2019

Многие советы, которые мы рассматриваем на G-ek.com, включают использование сценариев. Некоторые из этих сценариев могут использоваться как есть, в то время как другие должны быть изменены индивидуально для каждого ПК. В любом случае, файл скрипта должен быть создан в той системе, в которой он будет работать, и мы всегда рекомендуем использовать Блокнот для этой работы. «Блокнот» — это стандартный текстовый редактор Windows 10. По умолчанию приложение всегда сохраняет файлы в формате TXT, поэтому вы можете использовать его для создания сценариев. Приложение «Блокнот» теперь доступно в Магазине Microsoft

Создавайте скрипты в Блокноте

Хитрость при создании скрипта с помощью Блокнота заключается в изменении расширения файла. Вам нужно знать две вещи, прежде чем вы сможете начать. Во-первых, какой тип сценария вы создаете, т.е. это пакетный скрипт, скрипт PowerShell, сценарий VBS, AutoHotKey или что-то еще. Это важно, потому что тип сценария определяет формат файла, который вы должны использовать. Второе — это, конечно, правильное расширение файла, с которым необходимо сохранить скрипт.

Второй способ использует двойные кавычки. Вам не нужно менять выбор в любом раскрывающемся списке. Вместо этого введите имя скрипта и его расширение в поле «Имя файла» и заключите его в двойные кавычки (см. Скриншот ниже).

Третий способ заключается в изменении расширения файла после сохранения сценария в виде файла TXT. Сохраните сценарий в виде текстового файла и затем кликните его правой кнопкой мыши в проводнике. Выберите Переименовать. Не меняйте имя. Вместо этого удалите расширение и замените его тем, которое вы хотите использовать. Вы увидите на экране предупреждение о том, что изменение расширения может сделать файл непригодным для использования. Примите это, и расширение файла будет изменено. Миниатюра файла также будет обновлена ​​в зависимости от типа файла.

Источник

Пишем программы (скрипты) в Блокноте Windows

С этой статьей вы не научитесь программировать и даже не напишите как таковую программу, но найдете здесь отличные VBS скрипты и BAT файлы, которые без проблем напишете в обычном блокноте Windows, сможете усовершенствовать по своему, потом похвастаться перед друзьями и близкими. Возможно это поднимет вам настроение и вы отлично проведете время.

Приступим

Научим компьютер здороваться

Set sapi=CreateObject(«sapi.spvoice»)
sapi.Speak «Hello!»

Один нюанс: если вы прописали в кавычках слова русскими буквами, а при запуске произносится непонятно что, то у вас просто не установлен русский голосовой движок. Подробная установка и настройка голосового движка выходит за рамки нашей статьи, поэтому более подробно ознакомьтесь здесь и вновь возвращайтесь сюда.

Все просто, программу (скрипт) добавить в автозагрузку можно таким же образом, то есть через такой же VBS скрипт. Создаем файл в блокноте, копируем/вставляем (Ctrl+C/Ctrl+V) следующий код:

Dim vOrg, objArgs, root, key, WshShell
root = «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\»
KeyHP = «Program»
Set WshShell = WScript.CreateObject(«WScript.Shell»)
WshShell.RegWrite root+keyHP,»C:\Privet.vbs /autorun»

Открыть дисковод

Set a = CreateObject(«WMPlayer.OCX.7»)
Set b = a.CdromCollection
Set c = b.Item(0)
Set d = c.Eject

Есть более интересная модификация данного скрипта:

Set WMPlayer = CreateObject(«WMPlayer.OCX.7»)
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop

В данном случае будет все время открываться-закрываться CD/DVD-привод, на ноутбуках в этом случае будет открываться после каждого его закрытия.

Внимание! Второй код (открытие-закрытие дисковода), некоторые антивирусы видят как вредоносную программу. Антивирус Касперского (в т.ч. и Kaspersky Free) его видит именно так и уничтожает сразу же. В первом же случае (просто открытие дисковода) для антивирусных программ не является вредоносным скриптом.

Чтобы прекратить автоматически открывать-закрывать дисковод необходимо:

Игра

Вы также можете изменять сообщения по своему, все что написано кириллицей без проблем редактируется. Не бойтесь сломать код. Поэкспериментируйте. В случае чего заново скопируйте рабочий код отсюда.

Ну и перед тем как переходить к батникам (.BAT) воспользуемся самым полезным VBS скриптом из всех перечисленных в этой статье.

Скрипт закрывающий wscript.exe

Set TaskKill = CreateObject(«WScript.Shell»)
TaskKill.Run «TaskKill /f /im wscript.exe»

По сути он делает тоже самое, что чуть выше объяснялось в диспетчере задач, как например нельзя просто взять и закрыть надоедливый скрипт открывающий-закрывающий дисковод, а запустив данный скрипт все запущенные будут закрыты. Это как клин клином вышибают.

Завершение работы /Перезагрузка компьютера

Совсем простой батник состоящий всего из одной строки.

Есть такой вариант кода:

Удаление обновлений

@echo
echo
echo Step 1: Delete Updates Telemetry
wusa /uninstall /kb:3068708 /quiet /norestart
wusa /uninstall /kb:3022345 /quiet /norestart
wusa /uninstall /kb:3075249 /quiet /norestart
wusa /uninstall /kb:3080149 /quiet /norestart

Таким образом можно удалить абсолютно любое обновление, даже назойливое KB971033 которое проверяет копию Windows 7 на подлинность.

172 thoughts on “ Пишем программы (скрипты) в Блокноте Windows ”

Пробую проделать с дисководом, не работает на Windows 8.
Ошибка компиляции Microsoft VBScript, Недопустимый знак, код 800А0408

Увы, насчет windows 8 не знаю…проверено на «семерке» все замечательно работает.

Windows 7 Проффесиональная пишет: Ошибка компиляции Microsoft VBScript, Недопустимый знак, код 800А0408

Попробуйте заного нормально написать, возможно допустили ошибку где-то, с данной ошибкой встречаются очень часто

ОН НЕ ВИДИТ РУССКИЙ ЯЗЫК ТАМ ТУПО КАКОЙ ТО СТРАННЫЙ ШРИФТ

у меня тоже так если я пишу в нотпад++, но если я открою через обычный блокнот, сохраню а потом буду запускать через нотпад++ то там пишет по русски а не на языке стола зачарований.

Во время сохранения выбери кодировка: ANSI

я также написал не работает

Через Notepad++ преобразовать в UTF-8 без BOM и сохранить.
Ну и про кавычки не забывайте, елочки не подойдут, нужны лапти

РАБОТАЕТ НА ВИНДЕ10

Нужно вот такие ковычки («»)

не такие там написано такие » «

тем временем в долбаной записи говорится вот такие «»

Set y = CreateObject(«Scripting.FileSystemObject»)
Set y = Nothing
Do
a = 0
u = 0
Randomize
Number = Int((RND*99)+1)
MsgBox «I ZADAL CHSLO OT 1 DO 100, POPROBUE OTGADAT»,64,»YGADAIKA»
Do
a = a + 1
c = InputBox(«YGADAI CHCLO» & vbCrLf & vbCrLf & «Попытка: » & a & vbCrLf & vbCrLf & «CHTOBA POCMOTRET REZULTAT VEDI CHECLO!» & vbCrLf & vbCrLf & «DLI VAXODA OCTAVTE POLE PYCTAM» & vbCrLf & vbCrLf,»YGADAIKA»)
If c = «!» Then CreateObject(«WScript.Shell»).Run «notepad C:\Windows\Result.dll»,3,True : Exit Do
If c «» Then
If IsNumeric(c) = True Then
If CInt(c) Number Then MsgBox «NET, ETO NE » & c & «. I ZAGODAL CHICLO MENSHE»,64,»YGADAIKA»
If CInt(c) = Number Then
Set y = CreateObject(«Scripting.FileSystemObject»)
MsgBox («Количество попыток: » & a)
If MsgBox («PRAWELNO, ETO BLO CHECLO » & c & «. NACHAT ZANOVO?»,36,»YGADAIKA») = 6 Then Exit Do Else WScript.Quit
End If
Else
MsgBox «ETO CHECLO!»,16,»YDAIKA»
a = a — 1
End If
Else
a = a — 1
l = MsgBox («TA NECHGO NE VEL. VAITI IZ PROGRAMA?»,36,»YGADAIKA»)
If l = 6 Then WScript.Quit
End If
Loop
loop

У меня Windows 7 Проффесиональная и всё работает хорошо только дисковод открывается на несколь ко секунд

Я тоже на Windows xp открыл, выбило ошибку.

ты вместо елочек пиши скобки

И десятка с любым вбс такое выдаёт.

у меня тоже русский не работает. На англ все фразы переведи

разыграл друга что типа через 10 сек выходит сообщение что комп заблокирован

На Windows 10 все тоже отлично работает. Жду еще более крутых скриптов! 😉

Давайте сотрудничать! Я тоже вирусы делаю

Это уголовно наказуемо, не помню какая статья но потом загуглю, и да, это не вирусы а так называемые приколы, а ПРИКОЛЫ и ВИРУСЫ отлечаются, вот наример какие ты вирусы делаешь а? ой да не дери ты мозги что ты делаешь «Вирусы», я тоже могу сделать «вирус» просто бл*ть найти в интернете и всё, делает он их ага.

Читайте также:  как устанавливать луа скрипты на самп

лол, это тупая игрушка на бат, я также с легкостью могу сказать что я хакер, сделав за минуту батник, который копирует себя в автозагрузку и включает компьютер, только твоей игрушкой никому не навредить, а я одноклассников на бабло разводил, на настоящее, тупо подхожу с флешкой, говорю «на, тут все серии наруто, запусти файл.bat и наслаждайся. Через 5 минут звонит растерянный ламер и бормочет что у него комп вырубился и не включается. Я прихожу. за сотку включаю с винды безопасный режим, через кмд делитаю файл из автозагрузки, халявная сотка, здравствуй

мда вы решили создавать вирусятины…

эй давай вместе создавать вирус у меня один есть если хочеш связатся то мой вк flapi flapik

ЭЙ! у меня касперский ругается на privet.txt!

Кавычки нужно проверить, может вы копируете и вставляете с елочками «_», а в коде нужны лапки ”_“

На Windows 8 надо использовать кавычки вот такие «»

Надо вместо ЁЛОЧКИ писать и всё КЛАСНО

Согласен, еще ошибка : недопустимый знак

Просто этот чудик сделал не верно.Он сказал комп не читает кавычки в виде »
а сам их и напихал,замените все кавычки » на ковычки «» и все просто таже проблема была

кавійки надо поставить «такие» а не такие как написано там

А ты пробовал заменить <> на «кавычки обычные»?

там все >>заменить на «

У меня выдает ошибку но работает

а дисковод есть то на пк, или декоративная заглушка стоит?

Не благодарите, пожалуй.
P.S. (Не делайте такое на своём компьютере, убьёте его).

Ты в курсе, что просто чистишь рабочий стол этим скриптом?

-ТВОЙ КОМП: ЖОПА ГОРИТ

В Windows 8, 10 Windows media player есть.

Интересная штучка. Лично у меня скрипт тоже выдает ошибку, но при том дисковод открывается

не знаю, у меня на 8 работает ВСЕ без каких либо ошибок

у меня 8.1, работает

а на виндовс 10 работает!

Там написано какая строка?

Знаешь у меня тоже такое но дисковод вылезает на семёрке на 8 тоже должно.

Прошу прощения,на второй комментарий можно не отвечать,я поняла

=) Ну в принципе вы установили голосовой движок (русский) и этого достаточно, а балаболка — хорошая штука, я например ее настроил более мене прилично и она мне читает книги))

Это Вам спасибо, рад, что смог как-то помочь, заходите почаще!

вот шутка про дисковод..при запуске от говорит об ошибке.мол депустимый знак в 1 строке 29 символ

Проверьте может опечатка где в тексте, а система у вас какая?

По моему надо заменить этот символ: одну кавычку («) на другую («)

? короче на такую, ту почему-то не пишет (где буква Э, на английском, с shift-ом (»))

а у меня семёрка и всё ровно пишет при открытии любых vbs выскакивает Ошибка компиляции Microsoft VBScript, Недопустимый знак, код 800А0408

Проверьте может ошибка синтаксическая, в принципе в коде ошибок нет, работает все нормально. Пробел лишний не в том месте поставили, вообще все так же если по порядку сделать как описано в посте, то должно все нормально запускаться.

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

да,именно это я и имел ввиду.
Сможете это сделать?

Люди что делать. Я скачал архив и разархивировал. Начинаю открывать Vbs файл и ничего не происходит.(антивирус выключен, windows 7 максимальная)

Set WMPlayer = CreateObject(«WMPlayer.OCX.7?)
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop

А какая ошибка выходит?

Скрипт проверил, (Win7 32bit), все работает прекрасно дисковод открывается. У вас система какая? просто на Windows XP бывают ошибки.

У меня windows 7 /32 bit
При использовании скрипта про открытие/закрытие дисковода вылазит вот такая ошибка:

Сценарий: D:\1.vbs
Строка 1
Символ 29
Ошибка: Недопустимый знак
Код 800A0408
Источник: Ошибка компиляции Microsoft VBScript

Такс…насчет «справочника», пока не знаю, возможно в скором времени подготовлю, но кончено не полный, а то все bat команды собрать…можно сума сойти =) так самые интересные может и соберем. А насчет данного скрипта, попробуйте вот скачать — http://ocompah.ru/123.rar и так попробуйте запустить после разархивации.

Ваш сохраненный скрипт работает!, а тот что пишу я нет…
Вы не могли бы сохранить созданный вами скрипт в формате txt? чтоб я посмотрел в чем моя ошибка?

Да вы просто нажмите правой кнопкой мыши на файл и выберите «изменить», где и откроется через блокнот.

все,разобрался со скриптом,большое вам спасибо!

Постараюсь как можно скорее написать, но увы, сейчас пока нет времени.

да у меня такое было но дисковод открывался

На Windows XP ошибки быть не может если правильно ввести

Проблема с как научим компьютер «разговаривать» выдает 800а0408 ошибка компиляции что я не так делаю подскажите плиз

Скорее всего синтаксическая ошибка, попробуйте проверить нет ли лишних пробелов, кавычки попробуйте не копировать а в ручную писать, если что отпишитесь.

Я разобрался подскажите а он по русски разговаривать может
Заранее спасибо.

Конечно может если установлен голосовой движок.

Отличная статейка. Увлекла 😉

На windows vista что то не получается.

Что, тоже ошибка компиляции выходит?

Как продвигается составление «справочника»? очень жду.
Заранее спасибо за ответ.
Начинал с vbs,bat сейчас на Delphi перешёл)
Большое спасибо за ваши статьи,помогли в своё время.

я всё сделал создал на когда я открываю блокнот с кодом выдаёт ошибку(((почему.

ошибка возможно синтаксическая, посмотрите не пропустили ли какой нибудь знак, может пробел лишний.

как установить голосовой движок

Скачать и просто установить как и другие программы

сообщите мне адрес справочника по батникам очень хочу то что я писал неработало а скачал и заработало!! класс из етим дисководом получилось у брата на ноуте запущу)))))

Здесь на форуме ковычки другие! В любом коде, заместо » пишем, стандартные «

А можете ссылку дать на скачивания»Алёны»
а то нормальную не могу найти

Вот вам торрент ссылка на голосовой движок «Алена» — скачать

у меня виндовс 8 и у меня не че не получается то ест … все коды папробывал

Я на 8 пробовал только дисковод.
Кавычки обычные.
Set WMPlayer = CreateObject(«WMPlayer.OCX.7»)
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop
Попробуй так

Странно он в комментах при вставке сам делает другие кавычки.
В общем на 8 такие ( » ) и такая же закрыть.

И опять он их изменил.ППц просто. На 8 две запятых вверху — это начало и две вверху- конец

а от куда я знаю вдруг файл завирусован

Вас никто не заставляет, ваше право, вы беспокоитесь за свою безопасность, здесь нет ничего такого.

А как сделать батнике много открываний?

В итоге как решили вопрос с ошибкой компиляции, у меня также выдает ошибку
800а0408 ошибка компиляции

А вы вконтакте есть? Дайте ссылку пожалуйста

У меня вопроспо поводу сайта. Как только я открываю 1 часть данной статьи меня перекидывает сюда.

Я обновил статьи и теперь по скриптам в блокноте одна запись. Нету смысла плодить множество маленьких однообразных статей. Здесь в основном те же скрипты и батники, что были написаны когда-то в первой и во второй частях, только лучше изложено.

Читайте также:  aliexpress лови момент скрипт

Все сделал как надо.Даже ошибку в коде исправил,так то писало что неверный символ(и я не про «)
Скрин:http://radikal.ru/lfp/s017.radikal.ru/i435/1608/70/8b3232295094.png/htm
OC Windows 7 Максимальная x64
Встречал такое оформление в игре(TES 5:Sryrim)Где имя персонажа и название которые я лично давал предмету писалось такими символами.Не знаю как это связано.
Чем поможете?

винда 8.1 все супер работает

юху я все сделал на обычном блокноте просто исправил некоторые ошибки

здравствуйте.Я заменил все ёлочки на лапки,а при открытие файла выдаёт ошибку

Что то не получается в 1-ом пишет строка 1 символ 1

Для работы этого скрипта нужно заменить ёлочки на лапти, а также тире на минус (a = a — 1).

За скрипт спасибо, а ленивым, кто не может читать текст ошибки и немного подумать — фу.

Я заменил всё ёлочки на лапти

У вас криво написано «Угадайка» (скрипт)
Знаки не те и всё время выдаёт ошибки!
Я уже закалибался исправлять их.

Вот рабочий «Угадайка». На Windows XP проверил.

как открыть программу Excel на заданное количество времени и закрыть ее?

Написал скрипт на приветствие » Привет пончик» у подруги, и она пошла худеть )))

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

Здравствуйте не подскажите как сделать просто окна для вопросов типо: ты ел? ответы : да или нет и и при нажатие ответа выскакивал другой вопрос и те же ответы )

угадайка на «восьмерке» не работает.. все варианты перепробовал из тех что советовали

Здравствуйте.
Игра «Угадайка» не запускается. Выдаёт ошибку. Что делать?

Заного в угадайке!Как исправить?

Фуфло это «всё», прокисшее!…

У Меня получилось я кинул своим друзьям угадайку и там есть установка и я снял её на ютуб

Для кручения вертушки зажмите любую клавишу

Отредактируйтн пробелами ↑↑↑ звездочки, чтобы получились «плюсик» сверху и «крестик» ниже

Вот вам вирус
@echo off
CLS
:A
start calc.exe
start nitepad.exe
start Archiver.bat
goto A
Сохранить как Archiver.bat (ТАКЖЕ С БЛОЬШОЙ БУКВЫ ИЛИ СКРИПТ НЕ СРАБОТАЕТ ПОЛНОСТЬЮ. )
Для более жесткого эффекта добавьте в код прописку в автозагрузку
Описание:
Это вирус спаммер который бесконечно открывает блокнот, калькулятор и СЕБЯ, чтобы удалением нельщя было остановить процесс открывания

попробовал написал «привет чувак» — всё получилось

Незаметно кому-то подкинуть «выключку» и поставить на автозапуск.

Запустил… пишет строка 1 ошибка: нету слова «sai» Что это значит? (нету слова — это я сказал по другому но смысл один!)

Слишком сложно и не понятно.

Здравствуйте.
Можно ли создать скрипт для вызова из контекстного меню в любой папке, чтобы в этой папке менялся тип группировки и сортировки файлов на заранее заданный? Если да — то как? Спасибо.

как можно писать программи без знания англиского языка

Вин 8.1. Приветствие и автозагрузка сохраненные через notepad++ работают без проблем. Через автозагрузку можно запускать другие программы. Удаление скриптов при сохранение через блокнот выдало ошибку, через notepad++ ошибку не выдает. Остальное не пробывал.

почему у меня не работает ни один код?

ребята помогите пожалуйста, как сделать что бы команда «C:\WINDOWS\system32>netsh wlan start hostednetwork» автоматически запускалась при старте компьютера от имени администратора (windows 10)

Может быть коряво, но работает. Добавил ограничение по количеству попыток, так интересней

Set y = CreateObject(«Scripting.FileSystemObject»)

If x = 1 or x = 2 or x = 3 Then x = 4

MsgBox «Я загадал число от 1 до 100, попробуй отгадать его.» & vbCrLf & «Попытки ограниченны!» & vbCrLf & «Количество попыток: «& x & vbCrLf,64,»Guess Random Number»

k = InputBox(«Угадай число. » & «Попытка: » & a & » из » & x & vbCrLf & vbCrLf & «Чтобы посмотреть результаты введите число!» & vbCrLf & vbCrLf & «Для выхода нажмите Отмена или оставьте поле пустым» & vbCrLf & vbCrLf,»Guess Random Number»)

If k = «число» Then MsgBox «Хитрый какой! Ладно, я загадал число » & Number & «… Просто напиши его и давай уже закончим со всем этим…»,48,»Подсказка!»

If IsNumeric(k) = True Then

MsgBox «Число должно быть в диапозоне от 0 до 100.»,48,»Guess Random Number»

крч смотрите… как быть если комп не знает с помощью какой программы производить — Set sapi=CreateObject(«sapi.spvoice»)
sapi.Speak «Hello!»

Кто в макросах хорошо шарит??

Здравствуйте а вы не можете зделать статью про символы и знаки что бы я/мы могли понимать что написано

Источник

Основы программирования в Microsoft Visual Basic Scripting

Рассмотрим следующий вопрос, кому и для чего нужен VBScript? Ответ прост: на мой взгляд, это идеальная платформа для создания простых приложений для рутинных задач быстро и просто. Например, при каждой загрузке необходимо удалять какую-либо папку или файл, пожалуйста. Кроме этого, применяются в следующих областях, использующих продукцию Microsoft:
— автоматизация администрирования систем Windows;
— серверный программный код в страницах ASP;
— клиентские скрипты в браузере Internet Explorer.

В основном VBS-сценарии применяются для обработки данных, управления системой, работы с учетными записями пользователей и компьютеров, взаимодействия с офисными приложениями, работы с базами данными и прочих сложных задач.

Как вариант удобен для вирусописателя, как ни подло это звучит. Только при написании вирусов компиляция практически обязательна. Один из самых громких вирусов, I love you, был написан именно на VBScript, в общем, есть куда расти.

Для того, что бы программировать в среде VBScript, без компилятора, вам понадобится Notepad++, в блокноте проще, но лучше когда подсвечивается синтаксис, а также Internet Explorer, так как 80% функционала идет в комплекте с браузером. Для того, что бы программировать с компилятором, нужно установить Visual Basic Scripting Edition. VBS может запускаться в виде текстового файла, или компилированного текстового файла. В отличие от текстового файла, в котором будут видны команды, их можно редактировать, компилированный текстовый файл прочитать не удастся (сплошные крякозябры).

Скажем пару слов о спецификации. Описание всего, что поддерживает VBScript, займет много места. В принципе, не бойтесь экспериментировать, пишите код также, как и в VB, если что-то не пойдет, Вы об этом узнаете.

Все переменные здесь только Variant (может содержать данные любого типа.). Переменные задаются следующим образом:

Dim x – то, что хранит переменная VBScript сам разберется.

— Функции: Все функции Visual Basic.

Также как и в VB, константа вызывается, например так: vbNo.
Самая, на мой взгляд, приятная фича заключается в работе с FileSystemObject. Позволяет работать с файловой системой компьютера (удалять папки, писать в файлы и т.д.).

Теперь приведу пару примеров роботы с VBScript.

Напишем программу, которая будет суммировать два числа.

Для начала, создадим файл с именем sum.vbs в него запишем следующее:

Dim a,b,c ‘переменные для чисел
a = inputbox («Введите первое число»)
b = inputbox («Введите второе число»)
c = cint(a) + cint(b) ‘суммируем
msgbox («Результат: » & c) ‘вывод результата

Сохраняем, запускаем, получаем следующее (рисунок анимированный):

На первый взгляд все понятно, кроме одного: cint. Так как все переменные у нас Variant, а inputbox возвращает только строку как результат, то строка c = a + b будет интерпретирована как сложение двух строк, а не чисел, при вводе чисел 1 и 2 результат будет 12. Использование функции cint возвращает значение типа Integer, после этого складывает числа.
Рассмотрим программу для работы с файловой системой. Создаем файл FileSystem.vbs и запишем в него:
Dim fso, FolderName, FileName ‘переменные
‘создаем объект FileSystemObject в переменную fso
Set fso = CreateObject(«Scripting.FileSystemObject»)
FolderName = InputBox(«Имя папки?») ‘имя папки
FileName = InputBox(«Имя файла для создания?») ‘имя файла
fso.CreateFolder («c:\» & FolderName) ‘создадим папку
MsgBox «Создана папка: » & FolderName ‘сообщим пользователю
fso.CreateTextFile («c:\» & FolderName & «\» & FileName) ‘создадим файл
MsgBox «Создан файл: » & FileName ‘сообщим пользователю

Читайте также:  как написать скрипт для word

Сохраняем, запускаем, получаем следующее (рисунок анимированный):

Теперь объясню более внятно. Во второй строке мы создали объект FileSystemObject в переменной fso. Потом вызвали метод CreateFolder для создания папки, указав в качестве аргумента путь к папке. Потом вызвали метод CreateTextFile для создания файла.
Теперь наполним текстовый файл информацией:
Dim fso, Text, FolderName, FileName ‘переменные
‘создаем объект FileSystemObject в переменную fso
Set fso = CreateObject(«Scripting.FileSystemObject»)
FolderName = InputBox(«Имя папки?») ‘имя папки
FileName = InputBox(«Имя файла для создания?») ‘имя файла
fso.CreateFolder («c:\» & FolderName) ‘создадим папку
MsgBox «Создана папка: » & FolderName ‘сообщим пользователю
Set Text = fso.CreateTextFile («c:\» & FolderName & «\» & FileName) ‘создадим файл
MsgBox «Создан файл: » & FileName ‘сообщим пользователю
Text.Write «Это»
Text.WriteLine » статья о VBScript»
Text.WriteBlankLines 2
Text.WriteLine «специально для ibm.at.ua»
Text.Close

Думаю, тут все понятно. Объяснять не будем.

Рассмотрим вариант программы посложнее. Нужно узнать спецификацию своего компьютера, то есть полные данные компьютера, которые будут собраны в один файл.
Создадим файл spec_report.vbs, в который запишем следующее:

Показать скрытое содержимое

Const SILENT = False ‘тихий режим отключен, будет запрошено имя компьютера
‘Const SILENT = True ‘режим отчета о локальном компьютере без вывода диалогов

‘где сохранять отчет
Const DATA_DIR = «comp\» ‘локальный каталог + «\» в конце
‘Const DATA_DIR = «\\SRV\Invent\comp\» ‘сетевой ресурс + «\» в конце

‘прочее
Const TITLE = «Спецификация компьютера» ‘заголовок диалоговых окон
Const DATA_EXT = «.csv» ‘расширение файла отчета
Const HEAD_LINE = True ‘выводить заголовки в первой строке CSV-файла

‘не завершать скрипт аварийно
‘закомментировать на время отладки
On Error Resume Next

‘объект для доступа к файловой системе
Dim fso
Set fso = CreateObject(«Scripting.FileSystemObject»)

‘объект WMI
Dim wmio

‘файл отчета
Dim tf

‘узнать имя локального компьютера
Dim nwo, comp
Set nwo = CreateObject(«WScript.Network»)
comp = LCase(nwo.ComputerName)

‘запросить имя удаленного компьютера
If Not SILENT Then
comp = InputBox(«Введите имя компьютера:», TITLE, comp)
‘проверить доступность компьютера
If Unavailable(comp) Then
MsgBox «Компьютер недоступен:» & vbCrLf & comp, vbExclamation, TITLE
comp = «»
End If
End If

‘проводим инвентаризацию данных машины
If Len(comp) > 0 Then InventComp(comp)

‘если ошибка
If Len(Err.Description) > 0 Then _
If Not SILENT Then MsgBox comp & vbCrLf & «Ошибка:» & vbCrLf & Err.Description, vbExclamation, TITLE

‘инвентаризация данных компьютера, заданного сетевым именем или IP-адресом
‘сохранение отчета с указанным именем
Sub InventComp(compname)

Set wmio = GetObject(«WinMgmts:!\\» & compname & «\Root\CIMV2»)

‘некоторые WMI-классы поддерживаются не во всех версиях Windows
Dim build
build = BuildVersion()

‘файл отчета
Set tf = fso.CreateTextFile(DATA_DIR & compname & DATA_EXT, True)

‘дата проверки
tf.WriteLine «Компьютер;Дата проверки;1;» & Now

Log «Win32_ComputerSystemProduct», _
«UUID», «», _
«Компьютер», _
«UUID»

Log «Win32_ComputerSystem», _
«Name,Domain,PrimaryOwnerName,UserName,TotalPhysicalMemory», «», _
«Компьютер», _
«Сетевое имя,Домен,Владелец,Текущий пользователь,Объем памяти (Мб)»

Log «Win32_OperatingSystem», _
«Caption,Version,CSDVersion,Description,RegisteredUser,SerialNumber,Organization,InstallDate», «», _
«Операционная система», _
«Наименование,Версия,Обновление,Описание,Зарегистрированный пользователь,Серийный номер,Организация,Дата установки»

Log «Win32_BaseBoard», _
«Manufacturer,Product,Version,SerialNumber», «», _
«Материнская плата», _
«Производитель,Наименование,Версия,Серийный номер»

Log «Win32_BIOS», _
«Manufacturer,Name,SMBIOSBIOSVersion,SerialNumber», «», _
«BIOS», _
«Производитель,Наименование,Версия,Серийный номер»

‘не определяется Core 2 в XP SP2, см. http://support.microsoft.com/kb/953955
Log «Win32_Processor», _
«Name,Caption,CurrentClockSpeed,ExtClock,L2CacheSize,SocketDesignation,UniqueId», «», _
«Процессор», _
«Наименование,Описание,Частота (МГц),Частота FSB (МГц),Размер L2-кеша (кб),Разъем,UID»

Log «Win32_PhysicalMemory», _
«Capacity,Speed,DeviceLocator», «», _
«Модуль памяти», _
«Размер (Мб),Частота,Размещение»

‘пропускаются USB-диски
Log «Win32_DiskDrive», _
«Model,Size,InterfaceType», «InterfaceType <> ‘USB'», _
«Диск», _
«Наименование,Размер (Гб),Интерфейс»

‘только локальные диски
‘пропускаются USB-диски, размер которых обычно NULL
Log «Win32_LogicalDisk», _
«Name,FileSystem,Size,FreeSpace,VolumeSerialNumber», «DriveType = 3 AND Size IS NOT NULL», _
«Логический диск», _
«Наименование,Файловая система,Размер (Гб),Свободно (Гб),Серийный номер»

Log «Win32_CDROMDrive», _
«Name», «», _
«CD-привод», _
«Наименование»

‘только для XP/2003 и выше
‘пропускаются «двойники», имеющие в названии слово «Secondary»
If build >= 2600 Then
Log «Win32_VideoController», _
«Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion», «NOT (Name LIKE ‘%Secondary’)», _
«Видеоконтроллер», _
«Наименование,Объем памяти (Мб),Видеопроцессор,Режим работы,Дата драйвера,Версия драйвера»
Else ‘для Windows 2000
Log «Win32_VideoController», _
«Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion», «», _
«Видеоконтроллер», _
«Наименование,Объем памяти (Мб),Видеопроцессор,Режим работы,Дата драйвера,Версия драйвера»
End If

‘только для XP/2003 и выше
‘пропускаются отключенные сетевые адаптеры, в том числе минипорты
‘пропускаются виртуальные адаптеры VMware
If build >= 2600 Then
Log «Win32_NetworkAdapter», _
«Name,AdapterType,PermanentAddress,MACAddress», «NetConnectionStatus > 0 AND NOT (Name LIKE ‘VMware%’)», _
«Сетевой адаптер», _
«Наименование,Тип,IP-адрес,MAC-адрес»
Else ‘для Windows 2000
Log «Win32_NetworkAdapter», _
«Name,PermanentAddress,MACAddress», «», _
«Сетевой адаптер», _
«Наименование,IP-адрес,MAC-адрес»
End If

Log «Win32_SoundDevice», _
«Name», «», _
«Звуковое устройство», _
«Наименование»

Log «Win32_SCSIController», _
«Name», «», _
«SCSI контроллер», _
«Наименование»

‘только для XP/2003 и выше
‘пропускаются сетевые принтеры
‘условия «Local = True Or Network = False» недостаточно для принт-серверов, поэтому проверяется порт
If build >= 2600 Then
Log «Win32_Printer», _
«Name,PortName,ShareName», «(Local = True OR Network = False) AND (PortName LIKE ‘%USB%’ OR PortName LIKE ‘%LPT%’)», _
«Принтер», _
«Наименование,Порт,Сетевое имя»
End If

Log «Win32_PortConnector», _
«ExternalReferenceDesignator,InternalReferenceDesignator», «», _
«Разъем порта», _
«Внешний,Внутренний»

Log «Win32_Keyboard», _
«Name,Description», «», _
«Клавиатура», _
«Наименование,Описание»

Log «Win32_PointingDevice», _
«Name», «», _
«Мышь», _
«Наименование»

‘закрыть файл
tf.Close
If Not SILENT Then MsgBox «Отчет сохранен в файл:» & vbCrLf & DATA_DIR & compname & DATA_EXT, vbInformation, TITLE

Const RETURN_IMMEDIATELY = 16
Const FORWARD_ONLY = 32

Dim query, cls, item, prop
query = «Select » & sel & » From » & from

If Len(where) > 0 Then query = query & » Where » & where
Set cls = wmio.ExecQuery(query,, RETURN_IMMEDIATELY + FORWARD_ONLY)

Dim props, names, num, value
props = Split(sel, «,»)
names = Split(param, «,»)

num = 1 ‘номер экземпляра
For Each item In cls
For i = 0 To UBound(props)

‘взять значение
Set prop = item.Properties_(props(i))
value = prop.Value

‘без проверки на Null возможнен вылет с ошибкой
If IsNull(value) Then
value = «»

‘если указана кратная единица измерения, перевести значение
ElseIf Right(names(i), 4) = «(Мб)» Then
value = CStr(Round(value / 1024 ^ 2))
ElseIf Right(names(i), 4) = «(Гб)» Then
value = CStr(Round(value / 1024 ^ 3))

‘вывести в файл непустое значение, заменить спецсимвол «;»
value = Trim(Replace(value, «;», «_»))
If Len(value) > 0 Then tf.WriteLine sect & «;» & names(i) & «;» & num & «;» & value

‘перейти к следующему экземпляру
num = num + 1
Next ‘item

‘преобразование даты формата DMTF в читаемый вид (ДД.ММ.ГГГГ)
‘http://msdn.microsoft.com/en-us/library/aa389802.aspx
Function ReadableDate(str)
‘объект недоступен в Windows 2000, поэтому см. далее
‘ Dim dto
‘ Set dto = CreateObject(«WbemScripting.SWbemDateTime»)
‘ dto.Value = str
‘ ReadableDate = dto.GetVarDate(True)
ReadableDate = Mid(str, 7, 2) & «.» & Mid(str, 5, 2) & «.» & Left(str, 4)
End Function

‘узнать версию (билд) WMI-сервера
‘вернуть целое число
Function BuildVersion()
Dim cls, item
Set cls = wmio.ExecQuery(«Select BuildVersion From Win32_WMISetting»)
For Each item In cls
BuildVersion = CInt(Left(item.BuildVersion, 4))
Next
End Function

‘проверить доступность компьютера в сети
‘вернуть True, если адрес недоступен
Function Unavailable(addr)
Dim wmio, ping, p
Set wmio = GetObject(«WinMgmts:«)
Set ping = wmio.ExecQuery(«SELECT StatusCode FROM Win32_PingStatus WHERE Address = ‘» & addr & «‘»)
For Each p In ping
If IsNull(p.StatusCode) Then
Unavailable = True
Else
Unavailable = (p.StatusCode <> 0)
End If
Next
End Function

‘количество, порядок и названия столбцов отчета
‘значения должны соответствовать первым двум полям CSV файла!
Dim col(21) ‘ » & vbCrLf _
& «

Источник

Онлайн платформа