strNewFolderName=%username%
oShell.run "cmd.exe /C NET SHARE strNewFolderName =""C:\test02\" & strNewFolderName & " "" /GRANT:" & strNewFolderName & ",FULL"
请你告诉我在哪里忘记输入报价?
提前感谢您的回答。
答案 0 :(得分:0)
你在这里有额外的引用" "" /GRANT:"
你试图在脚本中包含引号吗?如果是这样你就可以使用& Chr(34)有关额外报价,请参阅[Link](Adding quotes to a string in VBScript)
答案 1 :(得分:0)
使用.Run或.Exec时的第一条规则:
将命令构建到变量中.Echo it。
>> strNewFolderName = "NewFolderName"
>> sCmd = "cmd.exe /C NET SHARE strNewFolderName =""C:\test02\" & strNewFolderName & " "" /GRANT:" & strNewFol
derName & ",FULL"
>> WScript.Echo sCmd
>>
cmd.exe /C NET SHARE strNewFolderName ="C:\test02\NewFolderName " /GRANT:NewFolderName,FULL
显然,strNewFolderName
没有插入/替换,因为VBScript不会自动将变量内容放入字符串文字/忘记将strNewFolderName
的第一个实例连接到字符串中。
让我们进行连接:
>> sCmd = "cmd.exe /C NET SHARE " & strNewFolderName & "=""C:\test02\" & strNewFolderName & " "" /GRANT:" & st
rNewFolderName & ",FULL"
>> WScript.Echo sCmd
>>
cmd.exe /C NET SHARE NewFolderName="C:\test02\NewFolderName " /GRANT:NewFolderName,FULL
同样很明显,在结束/第二次报价之前存在虚假空间。
& " "" /GRANT:" &
应该是
& """ /GRANT:" &
第二条规则:
使用.Echo
ed字符串从控制台测试您的命令。
假设此测试成功,则可以使用
oShell.Run sCmd
或 - 甚至更好:
iRet = oShell.Run(sCmd, [intWindowStyle], [bWaitOnReturn])
有信心。
如果你愿意学习,你可以看看