Как запустить файл с помощью VisualBasicScript (.vbs)

Как я могу запустить файл с VisualBasicScript (.vbs)?

Файл называется «file.bat» и находится в том же каталоге, что и .vbs.


person Deniz Zoeteman    schedule 05.06.2009    source источник
comment
@YourComputerHelpZ - вы получаете много отличных ответов. Может быть, вам следует объяснить, какова ваша цель. Откройте «file.bat», а затем что? Отобразить его содержимое в окне сообщения, отредактировать текст, запустить пакетный файл и т. д.?   -  person ichiban    schedule 05.06.2009
comment
Говоря открыть, вы имеете в виду запуск/выполнение?   -  person Helen    schedule 05.06.2009


Ответы (6)


да, я хочу запустить его.

Тогда попробуйте это:

CreateObject("WScript.Shell").Run "file.bat"
person Helen    schedule 05.06.2009

См. множество примеров в technet репозитории скриптов Script Center.

Простой пример: Выбор и проверка связи с компьютерами с помощью текстового Файл:

On Error Resume Next

Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\scripts\servers.txt", ForReading)

strComputers = objTextFile.ReadAll
objTextFile.Close

arrComputers = Split(strComputers, vbCrLf)
Set objShell = CreateObject("WScript.Shell")

For Each strComputer In arrComputers

    strCommand = "%comspec% /c ping -n 3 -w 1000 " & strComputer
    Set objExecObject = objShell.Exec(strCommand)
    strText = objExecObject.StdOut.ReadAll
    If Instr(strText, "Reply") > 0 Then

    ' =====================================================================
    ' Insert your code here
    ' =====================================================================

        Set objWMIService = GetObject _
            ("winmgmts:\\" & strComputer & "\root\cimv2")
        Set colItems = objWMIService.ExecQuery _
            ("Select * From Win32_OperatingSystem")
        For Each objItem In ColItems
            Wscript.Echo strComputer & ": " & objItem.Caption
        Next


    Else
        Wscript.Echo strComputer & " could not be reached."
    End If

Next
person gimel    schedule 05.06.2009
comment
хм.. не могу найти то, что ищу. - person Deniz Zoeteman; 05.06.2009
comment
Первый ответ лучший - person Roke; 11.08.2015

Используйте FileSystemObject.

Использование для открытия файла:

Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(".\File.bat", ForReading)
person cmsjr    schedule 05.06.2009
comment
см. выше, вы получите файл как открытие файла. В этом случае он открывается для чтения, вы также можете указать для записи или добавления. - person cmsjr; 05.06.2009
comment
Примечание ForWriting перезапишет любое текущее содержимое. - person cmsjr; 05.06.2009
comment
Плохо, вам нужно локально определить константу ForReading, отредактированную выше. Уточните пожалуйста, хотелось бы .bat - person cmsjr; 05.06.2009
comment
Это дает вам исключение? Что именно вы хотите сделать с файлом, когда вы его открываете? Учитывая, что это bat-файл, вы действительно хотите запустить пакетный файл? - person cmsjr; 05.06.2009

Еще проще Этот код работает для всех ОС, я попробовал его в Windows 10, и он работает так хорошо: попробуйте сами :)

Function BrowseForFile()
  BrowseForFile = CreateObject("WScript.Shell").Exec( _
  "mshta.exe ""about:<input type=file id=f>" & _
  "<script>resizeTo(0,0);f.click();new ActiveXObject('Scripting.FileSystemObject')" & _
  ".GetStandardStream(1).WriteLine(f.value);close();</script>""" _
  ).StdOut.ReadLine()
End Function
person Alex Casal    schedule 22.04.2019

Код косяка:

jamb(run) "%PWD%\File.bat" & display box(small) with $OUTPUT

Код ВБС:

set runFile (".\file.bat")
mode console
msgbox (runFile)
person Microsoft    schedule 29.12.2016
comment
Я не уверен, что это отвечает на вопрос - person Antti Haapala; 30.12.2016

person    schedule
comment
ммм... я просто хочу открыть его, больше ничего. - person Deniz Zoeteman; 05.06.2009