Как я включаю общий файл в VBScript (подобный C #include)?

Если вам абсолютно нужна локальная копия файла, вам нужно будет открыть InputStream копию содержимого в локальный файл, в котором вы знаете путь, а затем перейти оттуда. Sidenote: Guava ByteStreams#copy - это простой способ выполнить это.

Конечно, этот файл больше не поддерживается исходным источником Uri, поэтому я не думаю, что это то, что вы хотите. Вместо этого вы должны работать с API-интерфейсом Uri. Взгляните на Storage Access Framework

Изменить

Вот как вы можете получить InputStream из вашего Uri

InputStream inputStream = getContentResolver().openInputStream(uri);

38
задан 2 revs, 2 users 100% 15 July 2009 в 06:12
поделиться

6 ответов

Платформа "Windows Script Host" (если ya хотят назвать его, что), предлагает документ обертки XML, который добавляет функциональность по регулярным vbs файлам. Один из которых является способностью включать внешние файлы сценария и разновидностей VBscript и Jscript. Я никогда не становился очень глубоким в него, но я думаю, что это сделало бы то, что Вы желаете сделать. http://msdn.microsoft.com/en-us/library/15x4407c (По сравнению с 85) .aspx

можно включать JavaScript, VBScript или модули других языков сценария WScript.

файл WSF В качестве примера:

<job id="IncludeExample">
   <script language="JavaScript" src="sprintf.js"/>
   <script language="VBScript" src="logging.vbs"/>
   <script language="VBScript" src="iis-queryScriptMaps.vbs"/>
</job>

, Если вышеупомянутый файл называют "iis-scriptmaps.wsf", выполняет его этот путь с cscript.exe:

cscript.exe  iis-scriptmaps.wsf
45
ответ дан 2 revs, 2 users 65% 27 November 2019 в 03:06
поделиться

Можно создать (относительно) небольшую функцию в каждом файле, что Вы хотите включать другие файлы в, следующим образом:

sub includeFile (fSpec)
    dim fileSys, file, fileData
    set fileSys = createObject ("Scripting.FileSystemObject")
    set file = fileSys.openTextFile (fSpec)
    fileData = file.readAll ()
    file.close
    executeGlobal fileData
    set file = nothing
    set fileSys = nothing
end sub

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

includeFile "commonapi.vbi"
includeFile "dbcalls.vbi"

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

<час>

Примечание, что эти includeFile функция может быть сжата до:

Sub includeFile(fSpec)
    With CreateObject("Scripting.FileSystemObject")
       executeGlobal .openTextFile(fSpec).readAll()
    End With
End Sub

Или даже к (если Вы не являетесь неблагоприятными длинным линиям):

Sub includeFile(fSpec)
    executeGlobal CreateObject("Scripting.FileSystemObject").openTextFile(fSpec).readAll()
End Sub
54
ответ дан 3 revs, 2 users 69% 27 November 2019 в 03:06
поделиться

Этот VBScript использует локально или служил классическому стилю ASP?

, Если его классический ASP, можно использовать SSI todo это:

<!-- #include virtual="/PathTo/MyFile.vbs" -->
1
ответ дан FlySwat 27 November 2019 в 03:06
поделиться

IIS 5 и также позволяет script тег для включения других файлов из файла ASP. (Действительно ли Ваш VBScript является ASP-страницей или сценарием Windows?) Вот пример:

<script language="VBScript" runat="server" src="include.asp"></script>

поведение и правила несколько отличаются от серверной стороны, включает.Примечание: Я на самом деле никогда не пытался использовать этот синтаксис от классического ASP.

0
ответ дан Mike Henry 27 November 2019 в 03:06
поделиться

Вы можете использовать функцию ExecuteGlobal для запуска произвольного кода VBS в глобальном пространстве имен. Пример можно найти здесь: http://www.source-code.biz/snippets/vbscript/5.htm

1
ответ дан 27 November 2019 в 03:06
поделиться

Вы определенно можете использовать тег WSF script в cscript:

<script language="VBScript" src="ADOVBS.INC"/>

Если вы используете ADOVBS.inc для доступа к ADODB, убедитесь, что удалили

<% %>

теги из ADOVBS.INC.

0
ответ дан 27 November 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: