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

Обновлено: 07.07.2024

Я новичок в VBScript. Я искал ее и узнал, что мы можем запустить VBScript из командной строки, выполнив следующую команду:

Например, мое имя vbscript Converter.vbs и присутствует в папке D:\VBS .

Я могу запустить его с помощью следующих методов:

Теперь я хотел бы выполнить выше VBScript без команды Cscript или Wscript , просто набрав имя VBscript name i.e. Converter.

Я НЕ ХОЧУ УКАЗАТЬ ПОЛНУЮ ПУТЬ ВЕБРИТИНА.

Я разбиваю это на несколько отдельных частей, так как каждая часть может быть выполнена индивидуально. (Я вижу подобный ответ, но я расскажу здесь более подробное объяснение.)

Первая часть, чтобы избежать ввода "CScript" (или "WScript" ), вам нужно сообщить Windows, как запустить файл *.vbs script. В моей Windows 8 (я не могу быть уверен, что все эти команды работают точно так, как показано здесь в старых Windows, но процесс тот же, даже если вам нужно немного изменить команды), запустите консольное окно (например, "командную строку", или aka [неправильно] "приглашение dos" ) и введите "assoc.vbs". Это должно привести к ответу, например:

Используя это, вы затем набираете "ftype VBSFile", что должно приводить к ответу:

Если эти два уже определены, как указано выше, ваша Windows уже настроена, чтобы знать, как запустить файл *.vbs. (BTW, WScript и CScript - это одна и та же программа с использованием разных имен. WScript запускает script, как если бы это была программа GUI, а CScript запускает ее, как если бы она была программой командной строки. См. Другие сайты и/или документацию для эти детали и предостережения.)

Вы также можете ввести "help assoc" или "help ftype" для получения дополнительной информации об этих командах, которые часто удобны, когда вы хотите автоматически запускать определенные программы, просто набрав имя файла с определенным расширением. (Будьте осторожны, поскольку некоторые расширения файлов специально настроены Windows или программами, которые вы, возможно, установили, чтобы они работали правильно. Всегда проверяйте текущие присвоенные значения, сообщаемые assoc/ftype, и сохраняйте их в текстовом файле где-нибудь, если вам нужно восстановить их.)

Вторая часть, не вводя расширение файла при вводе команды из окна консоли. Понимание того, как Windows (и программа CMD.EXE) находит команды, которые вы вводите, полезна для этого (и следующий) часть. Когда вы вводите команду, давайте использовать "querty" в качестве примера, система сначала попытается найти в ней команду внутреннего списка команд (через настройки в реестре Windows для самой системы или запрограммированные в случае CMD.EXE). Поскольку такой команды нет, она попытается найти команду в текущей переменной среды% PATH%. В старых версиях DOS/Windows CMD.EXE(и/или COMMAND.COM) автоматически добавит расширения файлов ".bat", ".exe", ".com" и, возможно, ".cmd" к имени команды, которое вы напечатано, если вы явно не набрали расширение (например, "querty.bat", чтобы избежать ошибки "querty.exe" по ошибке). В более современных Windows он попробует расширения, перечисленные в переменной среды% PATHEXT%. Итак, все, что вам нужно сделать, это добавить .vbs в% PATHEXT%. Например, здесь мой% PATHEXT%:

Теперь, если вы хотите сделать это все время без необходимости устанавливать% PATHEXT%, вам придется изменить системную среду. Ввод его в окне консоли только изменяет его для сеанса окна консоли. Я оставлю этот процесс упражнением для читателя.:-P

Третья часть, чтобы запустить script, не набирая полный путь. Эта часть, относящаяся ко второй части, существует со времен DOS. Просто убедитесь, что файл находится в одном из каталогов (папки, для вас, люди Windows!), Перечисленные в переменной среды% PATH%. Мое предложение состоит в том, чтобы сделать ваш собственный каталог для хранения различных файлов и программ, которые вы создаете или часто используете из окна консоли/командной строки (то есть не беспокойтесь об этом для программ, которые вы запускаете из стартовое меню или любой другой метод.. только консольное окно. Не связывайтесь с программами, которые установлены Windows или автоматическим установщиком, если вы не знаете, что делаете).

Объединение всех трех частей приведет к настройке вашей системы Windows, чтобы везде, где вы можете ввести команду командной строки, вы можете запустить свой VBScript, просто набрав его имя базового файла. Вы можете сделать то же самое для любого типа файла/расширения; Как вы, вероятно, видели в моем% PATHEXT%, моя система настроена на запуск сценариев Perl (.PLX;.PLW;.PL) и Python (.PY). (Я также поставил "C:\sys\bat; C:\sys\scripts; C:\sys\wsh; C:\sys\bin" в начале моего% PATH% и поместил различные командные файлы, script файлы и т.д. в этих каталогах, поэтому Windows всегда может их найти. Это также удобно, если вы хотите "переопределить" некоторые команды: сначала поместить файлы *.bat в путь, чтобы система находила их перед *. exe, например, и тогда файл *.bat может запустить реальную программу, предоставив полный путь к фактическому файлу *.exe. Узнайте о различных сайтах в "программировании пакетных файлов" для получения подробной информации и других примеров мощности командной строки.. Это еще не мертво!)

Последнее замечание:. Проверьте некоторые из других сайтов для различных предупреждений и предостережений. Этот вопрос поставил script с именем "converter.vbs", который опасно близок к команде "convert.exe", которая представляет собой программу Windows для преобразования вашего жесткого диска из файловой системы FAT в файловую систему NTFS. которые могут сжать ваш жесткий диск, если вы допустили ошибку ввода текста.

С другой стороны, используя вышеупомянутые методы, вы также можете изолировать себя от таких ошибок. В качестве примера можно использовать CONVERT.EXE. Переименуйте его в нечто вроде "REAL_CONVERT.EXE", затем создайте файл типа "C:\sys\bat\convert.bat", который содержит:

Вы также можете использовать CHOICE.EXE в современных Windows, чтобы пользователь вводил "y" или "n", если они действительно хотят продолжить, и т.д. Опять же, мощь пакетных (и скриптовых) файлов!

Вот некоторые ссылки на некоторые хорошие ресурсы о том, как использовать всю эту мощность:

Большинство этих сайтов ориентированы на пакетные файлы, но большая часть информации в них применяется для запуска любого типа файлов (*.bat), файла команды (*.cmd) и сценариев (*.vbs, *.js, *.pl, *.py и т.д.).

Пользователи привыкли к тому, что любое приложение, запускаемое на компьютере, отображается в Панели задач. Но существует несколько способов, позволяющих скрыть ПО от посторонних глаз. Для осуществления задуманного нужно разобраться, как запустить программу в скрытом режиме на операционной системе Windows 10. Операцию можно выполнить как встроенными средствами ОС, так и при помощи специальных утилит. Подробности – далее.

Запуск через Командную строку

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

screenshot_1

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

  • Щелкните ПКМ по иконке «Пуск».
  • Перейдите в командную строку с правами Администратора.

screenshot_2

  • Введите команду «Start-Process -WindowStyle hidden "C:/ProgramFiles(х86)/Yandex Browser/Browser.exe"», где вместо «C:/ProgramFiles(х86)/Yandex Browser/Browser.exe» укажите расположение исполняемого файла приложения.
  • Нажмите на клавишу «Enter».

screenshot_3

На заметку. Вместо Командной строки можно воспользоваться другим похожим интерфейсом под названием PowerShell.

После выполнения указанных действий вы заметите, что программа начала работать скрытно, то есть без прямого отображения в интерфейсе Windows 10.

Применение скрипта VBScript

Альтернативный вариант, предполагающий использование встроенного приложения «Блокнот». Несмотря на то, что многие юзеры воспринимают его исключительно в качестве текстового редактора, софт способен обрабатывать скрипты, некоторые из которых предназначены для скрытного запуска отдельных программ.

Для начала вам потребуется открыть «Блокнот» любым удобным способом:

screenshot_4

  • при помощи поисковой строки;
  • путем создания нового текстового документа на Рабочем столе.

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

Set WShell = CreateObject("WScript.Shell")

WShell.Run "Browser.exe", 0

Set WShell = Nothing

screenshot_5

По аналогии с Командной строкой в нем указывается имя исполняемого файла, но без точного расположения в определенной директории Проводника. В нашем случае это «Browser.exe». Далее текстовый документ нужно сохранить в расширении «.vbs», а затем запустить его двойным кликом левой кнопки мыши. Это позволит открыть указанную программу в скрытом режиме. В то же время нужно отметить, что даже замаскированное приложение будет отображаться в Диспетчере задач.

screenshot_6

Специальные утилиты

Quiet

Пытаясь найти в интернете утилиту Quiet, пользователи натыкаются на приложение Quiet on the Set, предназначенное для настройки звука ПК. Дело в том, что под «Quiet» понимается не отдельная программа, а способ скрытия отдельного софта:

  • Комбинацией клавиш «Win» + «R» запустите окно «Выполнить».

screenshot_7

  • Введите запрос «regedit» и нажмите клавишу «Enter» для перехода в Редактор реестра.

screenshot_8

  • Перейдите в папку с нужной программой.
  • Добавьте к названию ключа «DisplayName» слово «Quiet», чтобы получилось «QuietDisplayName».

screenshot_9

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

NirCmd

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

VBS-скрипт - это мощное решение для автоматизации действий пользователя в системах семейства Windows. Такой тип сценариев обычно используется для:

  • создания сложных сценариев;
  • использования объектов из других приложений и библиотек;
  • скрытия окон в ходе выполнения сценария;
  • шифрования логики сценария.

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

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

  • vbs - Visual Basic Script
  • vbe - зашифрованный Visual Basic Script
  • js - Java Script
  • jse - зашифрованный Java Script
  • wsh - настройки скрипта
  • wsf - XML-интегрированный сценарий

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

Как уже было описано выше, сценарии не компилируются, а интерпретируются. То есть для обработки скрипта в системе должен присутствовать интерпретатор языка VBS, и таких интерпретатора в Windows есть даже две штуки: оконный WScript и консольный CScript - оба интерпритатора - это Windows Script Host (WSH).

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

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

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

  • длина строки не ограничена;
  • регистр символов не учитывается;
  • количество пробелов между параметрами не учитывается;
  • строку команды можно разрывать, а на месте разрыва нужно вставлять символ " _ ";
  • максимальная длина имени переменной 255 символов;
  • комментарии обозначаются сиволом " ' ".

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

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

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

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

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

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

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

  • iValueName - числовые типы
  • sValueName - строковый тип
  • bValueName - логический тип
  • dValueName - дата
  • oValueName - объект
  • cValueName - константа
  • aArrayName - массив

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

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

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

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

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

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

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

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

Во всех приведенных выше конструкциях применяется следующее правило: "Если выполняется условие <Condition>, то произвести список действий <Action>, которые расположеные под текущем блоком условия. Если текущее условие не выполняется, то перейти к списку действий <Action> под командой Else."

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

В данной конструкции работает правило: "Если значение переменной <Variable> равно значению <Significance>, то произвети список действий <Action> под этим значением, иначе перейти к проверке следующего значения <Significance>."

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

Обычный цикл организуется структурой For - Next, в аргументах которой задаются такие параметры как имя счетчика (<Counter>), начальное значение счетчика (<Start>), конечное значение счетчика (<Finish>) и, при необходимости, шаг счетчика (Step <StepSize>).

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

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

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

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

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

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

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

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

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

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

  • = - оператор присваивания;
  • + - сумма двух чисел;
  • - - вычитание двух чисел;
  • * - умножение двух чисел;
  • / - деление двух чисел;
  • \ - целочисленное деление двух чисел;
  • Mod - остаток от деления двух чисел;
  • ^ - возведение в степень;
  • & - соединение двух строк;
  • Is - сравнение двух объектов;
  • Eqv - сравнение двух выражений;
  • Not - логическая операция отрицания;
  • And - логическая операция конъюнкции;
  • Or - логическая операция дизъюнкции;
  • Xor - логическая операция исключения;
  • Imp - логическая операция импликации.

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

Сценарии, написанные на Visual Basic, позволяют определять пользовательские процедуры и функции и вызывать их из основной программы. Между процедурой и функцией практически нет никакого различия, разница заключется в логическом смысле этих подпрограмм: функции обычно используются для вычисления какого-то значения, а процедуры - для выполнения действий. Тем не менее и процедуры, и функции могут выполнять операции и передавать значения основной программе. Несмотря на это, все же не стоит забывать о предназначении этих подпрограмм: функции - для вычисления, процедуры - для действий.

Функция объявляется оператором Function, после которого следует название пользовательской функции, которое не должно совпадать ни с одним зарезервированным словом языка Visual Basic, далее указываются переменные, которые будут передаваться подпрограмме в качестве параметров - указание переменных в этой конструкции означает выделение ячеек памяти для переменных подпрограммы (объявление переменных для функции). В теле подпрограммы структура сценария ничем не отличается от обычной программы (здесь можно объявлять дополнительные переменные, поизводить операции, использовать другие функции и процедуры), в конце тела должен присутствовать оператор присвоения функции какому-то значению - это значение и будет возвращено основной программе. Прервать выполнение функции можно оператором Exit Function, но в этом случае нужно не забыть присвоить функции какое-то значение, иначе сценарий выдаст ошибку. Завершается функция оператором End Function.

Процедура определяется аналогично функции, но другим оператором -Sub. Так как процедура не возвращает основной программе никаких значений, то оператора присвоения перед выходом из процедуры нет. Прервать выполнение процедуры можно с помощью команды Exit Sub, а завершается вся конструкция оператором End Sub. Чтобы в основной программе вызвать процедуру, необходимо использовать ключевое слово Call и имя функции с необходимыми аргументами. (Ключевое словоCallне является обязательным, но я рекомендую его использовать чтобы избежать неправильных вызовов процедуры.)

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

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

В данном случае аргумент <Argument1> передается по ссылке на ячейку памяти - меняется значение переменной в основном сценарии. Иными словами, с помощью параметра ByRef процедура превращается в функцию - подпрограмма возвращает результат вычислений в основную программу.

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

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

VBS-сценарии, как и их родитель - язык Visual Basic, является объектно-ориентированным языком программирования, то есть основной концепцией является понятие объектов и классов

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

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

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

Все объекты, с которыми работает Windows Script Host, имеют методы и свойства. Чтобы обратиться к методу, необходимо указать объект, а через точку - метод с необходимыми параметрами.

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

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

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

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

  1. Запустить MS Word.
  2. В главном меню выбрать Tools -> Macro -> Visual Bacis Editor
  3. В окне редактирования макросов выбрать View -> Object Browser

Если какая-то библиотека не отражена в списке, то ее можно подключить через меню Tools -> References.

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

Методы и свойства корневого класса WScript, не требуют создания объекта - они автоматически доступны для использования непосредственно в теле сценария.

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

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

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

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

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

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

  • FileSystemObject - главный объект, который позволяет создавать, удалять, управлять дисками, папками и файлами в общем;
  • Drive - объект, позволяюший собирать информацию о дисках системы;
  • Drives - объект, хранящий в себе список дисков системы;
  • Folder - объект, позволяющий создавать, удалять, перемещать папки, а также собирать информацию о них и их содержимом;
  • Folders - объект, хранящий в себе список подпапок указанной папки;
  • File - объект, позволяющий создавать, удалять, перемещать файлы, а также собирать информацию о них;
  • Files - объект, хранящий в себе список файлов указанной папки;
  • TextStream - объект, позволяющий читать и создавать текстовые файлы.

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

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

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

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

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

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

Объект TextStream - это инструмент доступа к содержимому файла. С помощью него можно читать и изменять файл:

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

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

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


с первым проблем нет, а вот второй файл не хочет нив какую , пробовал путь так делать:


как задать полный путь для выполнения vbs файла?

  • Вопрос задан более трёх лет назад
  • 1344 просмотра
Что в переменной min?
vbs запускайте через cscript/wscript, т.е.
cscript.exe C:\Users\pavel\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\WshShell.vbs
Проблем с путями у вас нет, должны работать оба варианта.

mrusklon

вот так например выдает: Обьект не поддерживает это свойство или метод: 'WScript'
с cscript.exe , тоже выдает ошибку.
переменная min была лишней , убрал ее .

mrusklon

5aad423b92fca263084203.jpg

res2001, станно но

mrusklon

res2001, теперь ошибок нет, но нечего не отрабатывает))

3 строка запускает bat файл который копирует файлы с одной папки в другую, если запустить его вручную то все срабатывает как положено , есть какой нибудь способ отследить в чем косяк?

mrusklon, Способ один - смотреть какие ошибки, сопоставлять с кодом и что-то менять.
Если есть ошибки, то давайте их сюда, если нет - давайте код вашего vbs.
И поясните как вы запускаете "в ручную" и как не вручную. Под одним пользователем это происходит или нет.

mrusklon

res2001, спасибо за помощь , постараюсь максимально подробно описать, задача такая:
есть usb диск (в нашем случае диск Е) , нужно скачать с него все файлы в папку авто запуска и запустить оттуда vbs скрипт (который находится уже в папке авто запуска после копирования с флешки) , далее уже скопированный скрипт запускает bat файл который тоже копировался в невидимом режиме который в свою очередь копирует все файлы на диск D в папку abc , после копирования затирает все содержимое Е диска , там еще есть условие если на диске Е есть файл not.txt то нечего не копировать и не удалять файлы.

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

1.vbs (находится Е диске/флешке)


1.vbs запускает сперва send.bat :


содержимое папки FlashLetter это 2 файла WshShell.vbs и папка run , в папке delUSB.bat


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

vbs скрипты используются только для включения bat файлов в скрытом режиме , может есть способ проще? Я пока о таком не знаю.

Читайте также: