将全名从批处理文件传递到 vbs 文件,然后 运行 一个单词宏
passing full name from batch file to vbs file and then run a word macro with it
我有一个批处理文件,可以获取广告用户的全名特征并将其设置为变量 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
vba:
Private sub test(ByVal x As String)
Msgbox (x)
End sub
截至目前,我一直在获取 VBScript "subscript out of range error",所以我的问题与将变量从批处理传递到 vbs 有关。
变量 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"""
使用默认分隔符 space 解析 net user
输出(连续计为 1):
"Full Name Anthoni B. Caesar"
Tokens 1 2 3 4 5
Delims _ ____________________ _ _
For-Var %%A %%B %%C %%D %%E
我有一个批处理文件,可以获取广告用户的全名特征并将其设置为变量 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
vba:
Private sub test(ByVal x As String)
Msgbox (x)
End sub
截至目前,我一直在获取 VBScript "subscript out of range error",所以我的问题与将变量从批处理传递到 vbs 有关。
变量 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"""
使用默认分隔符 space 解析 net user
输出(连续计为 1):
"Full Name Anthoni B. Caesar" Tokens 1 2 3 4 5 Delims _ ____________________ _ _ For-Var %%A %%B %%C %%D %%E