首页 > 解决方案 > 将带有引号的字符串从批处理文件传递到VBScript?

问题描述

我正在尝试将批处理文件中的字符串参数传递给包含字符串的 vbs 脚本,但遇到了一些问题。我已经尝试了一些变体,但无法做到正确。

_execute.vbs

Set fso = CreateObject ("Scripting.FileSystemObject")
Set stdout = fso.GetStandardStream(1)
Set stderr = fso.GetStandardStream(2)

stdout.Write WScript.Arguments.Item(0) & "... "
Dim objShell, oExec
Set objShell = WScript.CreateObject ("WScript.Shell")
intReturn = objShell.Run(WScript.Arguments.Item(1), 0, True)
if intReturn = 0 Then
    stdout.WriteLine "Done"
Else
    stderr.WriteLine "Error (Return Code: " & intReturn & ") trying to execute [" & WScript.Arguments.Item(1) & "]"
End If

如何传递两个可能包含引号的字符串参数?

标签: batch-filevbscript

解决方案


我最终只在批处理文件中使用了单引号

cscript /nologo _execute.vbs "Installing IIS" "C:\Windows\SysWOW64\inetsrv\appcmd set site 'Default Web Site' -name:Stream"

并用 VBS 文件中的双引号替换它们。

Replace(WScript.Arguments.Item(1),"'",chr(34))

这并不理想,但它适用于我的用途。


推荐阅读