VBS - 引号问题(开头)

时间:2014-05-07 14:14:22

标签: vbscript

strNewFolderName=%username%

oShell.run "cmd.exe /C NET SHARE strNewFolderName =""C:\test02\" & strNewFolderName & " "" /GRANT:" & strNewFolderName & ",FULL"

请你告诉我在哪里忘记输入报价?

提前感谢您的回答。

2 个答案:

答案 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]) 

有信心。

如果你愿意学习,你可以看看

How To Quote Like a Pro

Build your command in a more structured way