Получите результат вывода VBScript в Batch Script и используйте его в другом месте - PullRequest
0 голосов
/ 13 августа 2011

У меня есть VBScript, который перечисляет буквы дисков. Я хочу получить буквы дисков в пакетном скрипте и использовать его где-нибудь. Например, представьте, что вывод VBScript - «C: \; D: \; F: \», затем я хочу сказать пакетному сценарию, чтобы эта информация удалялась из него C: \ и записывался в D: \; F: \ текстовый файл. Я хочу сделать это только через пакетный скрипт.

Вот VBScript для примера:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_LogicalDisk")

drives = ""
For Each objDisk in colDisks
  if drives > "" then
    drives = drives & chr(13)
  end if
  drives = drives & objDisk.DeviceID & "\"
Next

Так как это сделать? Спасибо, Маджид Паша

1 Ответ

0 голосов
/ 14 августа 2011

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

Пример сценария VB:

dim sh
dim drives
drives = "C:\;D:\;F:\"
set sh = CreateObject("wscript.shell")
sh.run "test.bat " & Chr(34) & drives & Chr(34)

И вы можете проверить его, создав файл test.bat как:

@echo off
echo %1
pause

В противном случае, если это должно бытьПакетный файл, который запускает его, вы можете запустить скрипт vb с помощью команды Start, но не знаете, как вернуть значение в пакетный файл, поэтому единственный способ, о котором я сейчас могу подумать, - написать скрипт vb.диски в файл, используя FileSystemObject (FSO), а затем вы можете прочитать это в пакетном файле, используя код, подобный следующему:

start c:\test.vbs 
set /p drives= < test.txt
echo %drives%
pause

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

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