Как запустить vbs скрипт в windows 10
Перейти к содержимому

Как запустить vbs скрипт в windows 10

  • автор:

How to run VBScript from command line without Cscript/Wscript

I am a beginner in VBScript. I googled it & got to know that we can run VBScript from command line by executing below command:

For Example my vbscript name is Converter.vbs & it’s present in folder D:\VBS .

I can run it through following methods:

Now I would like to execute above VBScript without Cscript or Wscript command by simply typing the name of VBscript name i.e. Converter.

I DON’T WANT TO SPECIFY THE FULL PATH OF VBSCRIPT EVERYTIME.

Can anyone please guide me on how to do that ?

serenesat's user avatar

Solution Seeker's user avatar

5 Answers 5

I’ll break this down in to several distinct parts, as each part can be done individually. (I see the similar answer, but I’m going to give a more detailed explanation here..)

First part, in order to avoid typing «CScript» (or «WScript»), you need to tell Windows how to launch a * .vbs script file. In My Windows 8 (I cannot be sure all these commands work exactly as shown here in older Windows, but the process is the same, even if you have to change the commands slightly), launch a console window (aka «command prompt», or aka [incorrectly] «dos prompt») and type «assoc .vbs«. That should result in a response such as:

Using that, you then type «ftype VBSFile«, which should result in a response of:

If these two are already defined as above, your Windows’ is already set up to know how to launch a * .vbs file. (BTW, WScript and CScript are the same program, using different names. WScript launches the script as if it were a GUI program, and CScript launches it as if it were a command line program. See other sites and/or documentation for these details and caveats.)

If either of the commands did not respond as above (or similar responses, if the file type reported by assoc and/or the command executed as reported by ftype have different names or locations), you can enter them yourself:

You can also type «help assoc» or «help ftype» for additional information on these commands, which are often handy when you want to automatically run certain programs by simply typing a filename with a specific extension. (Be careful though, as some file extensions are specially set up by Windows or programs you may have installed so they operate correctly. Always check the currently assigned values reported by assoc/ftype and save them in a text file somewhere in case you have to restore them.)

Second part, avoiding typing the file extension when typing the command from the console window.. Understanding how Windows (and the CMD.EXE program) finds commands you type is useful for this (and the next) part. When you type a command, let’s use «querty» as an example command, the system will first try to find the command in it’s internal list of commands (via settings in the Windows’ registry for the system itself, or programmed in in the case of CMD.EXE). Since there is no such command, it will then try to find the command in the current %PATH% environment variable. In older versions of DOS/Windows, CMD.EXE (and/or COMMAND.COM) would automatically add the file extensions «.bat», «.exe», «.com» and possibly «.cmd» to the command name you typed, unless you explicitly typed an extension (such as «querty.bat» to avoid running «querty.exe» by mistake). In more modern Windows, it will try the extensions listed in the %PATHEXT% environment variable. So all you have to do is add .vbs to %PATHEXT%. For example, here’s my %PATHEXT%:

Notice that the extensions MUST include the «.», are separated by «;», and that .VBS is listed AFTER .CMD, but BEFORE .COM. This means that if the command processor (CMD.EXE) finds more than one match, it’ll use the first one listed. That is, if I have query.cmd, querty.vbs and querty.com, it’ll use querty.cmd.

Now, if you want to do this all the time without having to keep setting %PATHEXT%, you’ll have to modify the system environment. Typing it in a console window only changes it for that console window session. I’ll leave this process as an exercise for the reader. 😛

Third part, getting the script to run without always typing the full path. This part, in relation to the second part, has been around since the days of DOS. Simply make sure the file is in one of the directories (folders, for you Windows’ folk!) listed in the %PATH% environment variable. My suggestion is to make your own directory to store various files and programs you create or use often from the console window/command prompt (that is, don’t worry about doing this for programs you run from the start menu or any other method.. only the console window. Don’t mess with programs that are installed by Windows or an automated installer unless you know what you’re doing).

Personally, I always create a «C:\sys\bat» directory for batch files, a «C:\sys\bin» directory for * .exe and * .com files (for example, if you download something like «md5sum», a MD5 checksum utility), a «C:\sys\wsh» directory for VBScripts (and JScripts, named «wsh» because both are executed using the «Windows Scripting Host», or «wsh» program), and so on. I then add these to my system %PATH% variable (Control Panel -> Advanced System Settings -> Advanced tab -> Environment Variables button), so Windows can always find them when I type them.

Combining all three parts will result in configuring your Windows system so that anywhere you can type in a command-line command, you can launch your VBScript by just typing it’s base file name. You can do the same for just about any file type/extension; As you probably saw in my %PATHEXT% output, my system is set up to run Perl scripts (.PLX;.PLW;.PL) and Python (.PY) scripts as well. (I also put «C:\sys\bat;C:\sys\scripts;C:\sys\wsh;C:\sys\bin» at the front of my %PATH%, and put various batch files, script files, et cetera, in these directories, so Windows can always find them. This is also handy if you want to «override» some commands: Putting the * .bat files first in the path makes the system find them before the * .exe files, for example, and then the * .bat file can launch the actual program by giving the full path to the actual *. exe file. Check out the various sites on «batch file programming» for details and other examples of the power of the command line.. It isn’t dead yet!)

One final note: DO check out some of the other sites for various warnings and caveats. This question posed a script named «converter.vbs», which is dangerously close to the command «convert.exe», which is a Windows program to convert your hard drive from a FAT file system to a NTFS file system.. Something that can clobber your hard drive if you make a typing mistake!

On the other hand, using the above techniques you can insulate yourself from such mistakes, too. Using CONVERT.EXE as an example.. Rename it to something like «REAL_CONVERT.EXE», then create a file like «C:\sys\bat\convert.bat» which contains:

You can also use CHOICE.EXE in modern Windows to make the user type «y» or «n» if they really want to continue, and so on.. Again, the power of batch (and scripting) files!

Here’s some links to some good resources on how to use all this power:

Most of these sites are geared towards batch files, but most of the information in them applies to running any kind of batch (* .bat) file, command (* .cmd) file, and scripting (* .vbs, * .js, * .pl, * .py, and so on) files.

Невозможно запустить файл VBScript на Windows 10

Когда я пытаюсь запустить файл .vbs на моем ноутбуке с Windows 10, появляется следующая ошибка.

3 ответа 3

Я могу придумать две причины, по которым это может произойти:

  1. Скрипт скачивается из интернета, поэтому он заблокирован. Разблокируйте его с помощью свойств файла.
  2. У вас установлено какое-то антивирусное ПО, блокирующее доступ к файлу. Проверьте ваши журналы для любой информации.

Проверьте, находится ли файл на «Общедоступном рабочем столе». Если это так, он будет отображаться на визуальном «рабочем столе» каждого пользователя, но Windows не сможет найти его в папках рабочего стола пользователя.

РЕДАКТИРОВАТЬ

На основании комментария от Питера (спасибо за это) я редактирую свой ответ.

Возможно, у вас возникли проблемы с правами — у вас нет прав на выполнение сценария на рабочем столе или, возможно, сценарий полностью заблокирован? Вам нужно больше информации — что это за сценарий? Лучше всего будет предоставить исходный код + каковы права на каталог (или цепочку каталогов), где вы пытаетесь выполнить свой код.

Это на тот случай, если вам нужно повысить права на ваш скрипт, который еще не ваш случай:

У вас должны быть права для запуска вашего скрипта. Вы можете запустить командную строку как администратор.

как запустить скрипт vbs windows 10

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

В зависимости от языка сценария, содержания и шифрования встречаются такие типы скриптов:

В этой статье я буду рассматривать сценарии типа vbs.

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

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

В Visual Basic работают следующие правила:

Рекомендуемая структура сценария:

По умолчанию переменные в сценариях объявляются автоматически при первом использовании в теле скрипта, если это не запрещено директивойOption Explicit. Если же в начале сценария объявить директиву Option Explicit, то все переменные нужно определять заранее с помощью следующих конструкций:

Константы объявляются в начале сценария с помощью конструкции:

Тип переменной присваивается автоматически после внесения в нее первого значения. В Visual Basic существуют следующие типы данных:

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

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

В VBS-сценариях возможно использование массивов переменных, которые позволяют хранить списки, таблицы и даже более сложные конструкции. Одномерные массивы (списки) могут быть динамическими, то есть они позволяют изменять свою размерность в ходе работы сценария. Все массивы объявляются командой Dim:

Пример использования массивов

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

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

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

Конструкция для одного действия, выполняемого по условию:

Конструкция для нескольких действий, выполняемых по условию:

Конструкция «развилка на несколько путей» (вариант сIf):

Конструкция «развилка на несколько путей» (вариант сSelect):

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

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

Цикл с неизвестным количеством итераций обычно применяется для перебора всех значений в коллекции объекта, когда не известна его размерность. Эта структура переберет все значения ( ) массива, переданного как парамер цикла ().

Циклы с условиями применяются для обработки данных, при выполнении какого-то условия. Такие циклы бывают двух видов: с проверкой в начале цикла и с проверкой в конце.

Цикл, пока выполняется условие, с проверкой в начале

Цикл, пока не выполнится условие, с проверкой в начале

Как уже было сказано выше, условия можно ставить в конец цикла. В этом случае тело цикла будет выполнено как минимум один раз. Так же как и в обычных циклах, цикл с условием можно прервать командой Exit Do:

Функции обработки дат:

Функции обработки строк:

И, естественно, помимо упомянутых функций, сценарии поддерживают все простейшие математические и логические операции:

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

Кстати, процедуры и функции должны располагаются в конце сценария.

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

По умолчанию все ошибки обрабатываются сценарием в автоматическом режиме, и, при возникновении ошибки, работа сценария останавливается. Для отключения автоматической обработки ошибок нужно использовать специальную директиву On Error Resume Next, которая отключает автоматическую обработку ошибок и продолжает работы сценария даже при их наличии. Для ручной обработки ошибок необходимо обратится к встроенному объектуErr, который хранит в себе статус ошибок. Объект Err имеет следующие свойства и методы:

Пример ручной обработки ошибки:

Итак, чтобы работать с объектом, его нужно сначала создать, используя классы из нужной библиотеки:

Удалить объект можно, присвоив ему значение Nothing:

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

Пример. Создание объекта файловой системы, обращение к методу создания папки, удаление объекта.

Обратите внимание, что понятие «объект» относится к логике сценария, а не к логике файловой системы. То есть, когда мы говорим «удаление объекта», мы имеем ввиду логический объект сценария, который никак не влияет на удаление каких-то частей файловой системы.

Чтобы узнать, какие существуют библиотеки в Вашей операционной системе, включенные в библиотеки классы, их методы и свойства, можно воспользоваться проводником объектов, например из Microsoft Word:

В сценариях есть методы, не входящие ни в какой класс, они доступны непосредственно в теле сценария:

Пример вывода диалогового окна с запросом текста, а после этого вывод на экран оконного сообщения с введенным текстом.

Применение этих методов и свойств более подробно мы разберем в примерах других классов.

Для работы с операционной системой используется специальный класс Shell, который позволяет выполнять такие операции как запуск программ, изменение реестра, создание ярлыков, доступ к системным папкам и системным переменным, доступ к системному журналу. Итак, методы и свойства класса Shell:

Пример. Использование методов и свойств класса Shell.

Как мы уже убедились, VBS-сценарии могут работать с оболочкой Windows, но это не единственная их возможность. С помощью класса Network можно получить доступ к сетевым объектам и управлять ими. Давайте подребнее разберем класс Network:

Пример. Использование методов и свойств класса Network.

Очень часто в сценариях встречаются такие случаи, когда необходимо что-то создать, удалить, переместить или изменить на диске компьютера. Эту задачу позволяет решить класс FileSystemObject, предназначенный для работы с файловой системой. Ниже перечисленны объекты, которые может создать этот класс:

Методы и свойства класса FileSystemObject (главного объекта):

Объекты Drives, Folders и Files класса FileSystemObject хранят в себе информацию о дисках, папках и файлах и, в основном, используюся для сбора информации о файловой системе. Они имеют только два свойства:

Чтобы было более понятно, что же такое коллекция объектов, рассмотрим пример вывода на экран списка файлов корня диска C:

Объект Drive предоставляет доступ к свойствам локального или сетевого диска:

Объект Folder предоставляет доступ ко всем свойствам папки, а также позволяет производить над ней действия:

Мы познакомились со всеми методами и свойствами класса FileSystemObject, рассмотрим пример использования этого класса:

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

Итак, мы познакомились с основами сценариев Visual Basic Script. Давайте подведем итог, и определим достоинства и недостатки таких сценариев:

Как запустить скрипт vbs windows 10

Выпуск #01

«Vbs, whs, js скрипты для администратора»

22 июля 2008

Как можно запустить скрипт?

Расмотрим процесс запуска самого простого скрипта (сценария). Для этого нужно на рабочем диске выделить место для хранения скриптов, пусть это будет диск c: и папка Script. Выполняются скрипты с помощью серверов сценариев, которые переводят команды текста в исполняемый код.

Интерпретаторы в Windows представлены двумя файлами: wscript.exe и cscript.exe. Оба позволяют работать с VBScript и JScript и применять все возможности административных скриптов. Отличия:

Отличия можно увидеть наглядно на примерах выполнения команды. Создадим самый простой скрипт.

Создаем файл vbs.

Вызовите проводник (чтобы открыть проводник, нажмите кнопку Пуск и выберите команды Программы, Стандартные и Проводник ), зайдите в пункт меню «Сервис\Свойства папки» и убедитесь, что у вас отключена галочка.

Выбираем диск c:, каталог Script и вставляем текстовый файл и переименувываем его в hello.vbs.

В сам файл внесем текст:

Данный скрипт выводит сообщение Hello!.

Рассмотрим варианты запуска этого скрипта.

1. Запуск скрипта с командной строки с помощью утилиты CScript.exe

Для запуска нашего скрипта с командной строки нужно вызвать консоль командной строки. В операционной системе выполните «Пуск\Выполнить. » и наберите cmd.exe. У вас вызовется консоль командной строки.

В консоле командной строки выполните команду CScript.exe c:\script\hello.vbs

Как видно из рисунка, наше сообщение вывелось в консоле.

В приложении 1 дан список ключей, для выполнения csript.exe. Допустим нам не хочется, чтобы выводился в командную строку логотип сервера сценариев, для этого надо запустить сценарий с командной CScript.exe c:\script\hello.vbs //Nologo.

2. Запуск скрипта с командной строки с помощью утилиты WScript.exe

Воспользуемся консолью, которую мы запустили для вызова скрипта с помощью утилиты CScript.exe. Вызовем скрипт с помощью утилиты WScript.exe набрав в окне консоли команду WScript.exe c:\Script\hello.vbs. Сообщение скрипта вывелось в виде всплывающего окошка.

3. Запуск скрипта используя команду»Пуск\Выполнить. «

при помощи утилиты WScript.exe

В операционной системе нажав «Пуск» и затем «Выполнить» выполним скрипт набрав ту же команду, что и в предыдущем примере: WScript.exe c:\Script\hello.vbs. Появится такое же окошко, что и в предыдущем примере.

4. Запуск скрипта с помощью файлового менеджера.

Выполнить скрипт можно с помощью любого файлового менеджера. Запустим Explover, выбирем диск c:, зайдем в папку Script и выполним файл hello.vbs нажав на нем двойной щелчок.

Приложения

Приложение 1

Запуск скриптов с помощью сервера скриптов для командной строки csript.exe

Для выполнения сценариев с помощью сервера сценариев для командной строки предусмотрен следующий синтаксис:

Как запустить vbs скрипт в windows 10

Выпуск #01

"Vbs, whs, js скрипты для администратора"

22 июля 2008

Как можно запустить скрипт?

Расмотрим процесс запуска самого простого скрипта (сценария). Для этого нужно на рабочем диске выделить место для хранения скриптов, пусть это будет диск c: и папка Script. Выполняются скрипты с помощью серверов сценариев, которые переводят команды текста в исполняемый код.

Интерпретаторы в Windows представлены двумя файлами: wscript.exe и cscript.exe. Оба позволяют работать с VBScript и JScript и применять все возможности административных скриптов. Отличия:

wscript — средство, ориентированное на работу с графическим интерфейсом, вывод — через графические окна сообщений;

cscript — ориентировано на командную строку, вывод — на консоль.

Отличия можно увидеть наглядно на примерах выполнения команды. Создадим самый простой скрипт.

Создаем файл vbs.

Вызовите проводник (чтобы открыть проводник, нажмите кнопку Пуск и выберите команды Программы, Стандартные и Проводник ), зайдите в пункт меню "Сервис\Свойства папки" и убедитесь, что у вас отключена галочка.

Выбираем диск c:, каталог Script и вставляем текстовый файл и переименувываем его в hello.vbs.

В сам файл внесем текст:

Данный скрипт выводит сообщение Hello!.

Рассмотрим варианты запуска этого скрипта.

1. Запуск скрипта с командной строки с помощью утилиты CScript.exe

Для запуска нашего скрипта с командной строки нужно вызвать консоль командной строки. В операционной системе выполните "Пуск\Выполнить. " и наберите cmd.exe. У вас вызовется консоль командной строки.

В консоле командной строки выполните команду CScript.exe c:\script\hello.vbs

Как видно из рисунка, наше сообщение вывелось в консоле.

В приложении 1 дан список ключей, для выполнения csript.exe. Допустим нам не хочется, чтобы выводился в командную строку логотип сервера сценариев, для этого надо запустить сценарий с командной CScript.exe c:\script\hello.vbs //Nologo.

2. Запуск скрипта с командной строки с помощью утилиты WScript.exe

Воспользуемся консолью, которую мы запустили для вызова скрипта с помощью утилиты CScript.exe. Вызовем скрипт с помощью утилиты WScript.exe набрав в окне консоли команду WScript.exe c:\Script\hello.vbs. Сообщение скрипта вывелось в виде всплывающего окошка.

3. Запуск скрипта используя команду"Пуск\Выполнить. "

при помощи утилиты WScript.exe

В операционной системе нажав "Пуск" и затем "Выполнить" выполним скрипт набрав ту же команду, что и в предыдущем примере: WScript.exe c:\Script\hello.vbs. Появится такое же окошко, что и в предыдущем примере.

4. Запуск скрипта с помощью файлового менеджера.

Выполнить скрипт можно с помощью любого файлового менеджера. Запустим Explover, выбирем диск c:, зайдем в папку Script и выполним файл hello.vbs нажав на нем двойной щелчок.

Приложения

Приложение 1

Запуск скриптов с помощью сервера скриптов для командной строки csript.exe

Для выполнения сценариев с помощью сервера сценариев для командной строки предусмотрен следующий синтаксис:

cscript [имя_сценария] [параметры_сервера] [аргументы_сценария]

  • имя_сценария — имя файла сценария, включая путь и расширение.
  • параметры_сервера — ключи командной строки, задающие различные свойства сервера сценариев Windows. Параметр сервера всегда начинается с двух косых черт (//).
  • аргументы_сценария — ключи командной строки, которые передаются в сценарий. Аргумент сценария всегда начинается с одной косой черты (/).
    Примечания

Все параметры являются необязательными, однако нельзя задать аргументы сценария, не задав сценарий. При отсутствии аргументов сценария или самого сценария программа Cscript.exe выведет описание синтаксиса команды и предусмотренные ключи.
Ключи сервера сценариев для командной строки (см. таблицу).

Copyright 2008 Новопашин Владимир. Все права защищены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *