I'm trying to pass a string parameter from a batch file to a vbs script that includes strings and I'm having some issues. I've tried a few variants but can't get it right.
_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
First try:
install.bat:@echo off cscript /nologo _execute.vbs "Installing IIS" "C:\Windows\SysWOW64\inetsrv\appcmd set site ""Default Web Site"" -name:Stream"Output:
Installing IIS... Error (Return Code: 87) trying to execute [C:\Windows\SysWOW64\inetsrv\appcmd set site Default Web Site -name:Stream]
Second try:
install.bat:@echo off cscript /nologo _execute.vbs 'Installing IIS' 'C:\Windows\SysWOW64\inetsrv\appcmd set site "Default Web Site" -name:Stream'Output:
'Installing... C:\DEV_execute.vbs(8, 1) (null): The system cannot find the file specified.
Third try:
install.bat:@echo off cscript /nologo _execute.vbs "Installing IIS" "C:\Windows\SysWOW64\inetsrv\appcmd set site ^"Default Web Site^" -name:Stream"Output:
Installing IIS... Error (Return Code: 1168) trying to execute [C:\Windows\SysWOW64\inetsrv\appcmd set site ^Default]
How can I pass two parameters that are strings that may include quotes?