передача полного имени из командного файла в VBS-файл, а затем запустить макрос слова - PullRequest
0 голосов
/ 03 июля 2018

У меня есть пакетный файл, который выбирает характеристику полного имени пользователя рекламы и устанавливает его в качестве переменной n. Мне нужно взять эту переменную и передать ее в файл VBS, а затем запустить макрос слова из этого VBScript. Вот что у меня есть:

Пакетная:

@echo off
for /f "tokens=*" %%i in ('NET USER "username" /DOMAIN ^| FIND /I "Full name"') do set n=%%i
cscript //NoLogo H:\firstRotation\mgmtSSnD\CMMR\fullName.vbs %1

VBS:

fullName = WScript.Arguments(0)
Set objWord = GetObject(,"Word.Application")
Set x = objWord.Documents.Open("mypath\my.docm")
objWord.Run "test", fullName

УВА:

Private sub test(ByVal x As String)
Msgbox (x)
End sub

На данный момент, я продолжаю получать VBScript "ошибка индекса вне диапазона", поэтому моя проблема связана с передачей переменной из пакета в vbs.

1 Ответ

0 голосов
/ 03 июля 2018

Переменная n будет содержать Full Name _spaces_ User Name, но вы не используете ее для передачи в VBS.

Этот пакет игнорирует Full Name и передает результат в %%B непосредственно в VBScript.

@echo off
for /f "tokens=2*" %%A in (
    'NET USER "username" /DOMAIN ^| FIND /I "Full name"'
) do cscript //NoLogo H:\firstRotation\mgmtSSnD\CMMR\fullName.vbs "%%B"

Цитаты, переданные из пакета, удаляются в VBS, вы должны реквотировать.
Я предполагаю, что сообщение об ошибке приходит от VBA.

fullName = WScript.Arguments(0)
Set objWord = GetObject(,"Word.Application")
Set x = objWord.Documents.Open("mypath\my.docm")
objWord.Run "test", """fullName"""

Синтаксический анализ net user выходных данных с пробелом по умолчанию (последовательный счет как 1):

        "Full Name                    Anthoni B. Caesar"
Tokens     1   2                        3     4    5
Delims       _    ____________________       _  _
For-Var  %%A  %%B                      %%C    %%D %%E
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...