我有一个批处理文件,可提取广告用户的全名特征并将其设置为变量n。我需要获取该变量并将其传递到vbs文件,然后从该vbscript运行word宏。这是我所拥有的:
批次:
divdir = conn.extend.standard.paged_search('cn = All.DL Div DSS Directors, ou = Distribution Lists, ou = Exchange, dc=google,dc=corpad,dc=net', '(objectClass=*)', attributes=['member'])
for b in divdir:
with open ('test2.txt', 'w') as file:
file.write (b)
vbs:
divdir = conn.extend.standard.paged_search('cn = All.DL Div DSS Directors, ou = Distribution Lists, ou = Exchange, dc=google,dc=corpad,dc=net', '(objectClass=*)', attributes=['member'])
my_file=open("test2.txt","w")
for b in divdir:
my_file.write(b.get('divdir')+'\n')
my_file.close()
vba:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
截至目前,我一直收到VBScript“下标超出范围错误”,所以我的问题与将变量从批处理传递到vbs有关。
答案 0 :(得分:1)
变量n
将包含Full Name _spaces_ User Name
,但您不会使用它将其传递给vb。
该批处理忽略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"
批处理中传递的报价已在vb中剥离,您必须重新报价。
我认为错误消息来自vba。
fullName = WScript.Arguments(0)
Set objWord = GetObject(,"Word.Application")
Set x = objWord.Documents.Open("mypath\my.docm")
objWord.Run "test", """fullName"""
使用默认定界符空间(连续计数为1)解析net user
输出:
"Full Name Anthoni B. Caesar" Tokens 1 2 3 4 5 Delims _ ____________________ _ _ For-Var %%A %%B %%C %%D %%E