如何传递ADS(带有动态字符串的参数),它可以包含从VBscript到Powershell的空格

时间:2015-07-06 11:57:37

标签: powershell vbscript hta

我想知道是否可以通过VBscript将参数传递给powershell。

到目前为止,这是我的代码和对此主题的调查。

的VBScript:

Dim pathvalue (pathvalue will dynamic path, which may have spaces in it. lets say path is "\\Server\search\File in some folder\Stack Overflow\")
sCmd = "powershell.exe -ExecutionPolicy ByPass -noexit -File \\server\Support\abhishek\Automation\SearchUtility.ps1 -Inputs " & PathValue
Set oShell = CreateObject("Wscript.Shell")
iResult = oShell.Run(sCmd, 1, true)

PS1。

Param([String] $Inputs)
$FolderPath = $Inputs;
echo "$FolderPath";

预期结果:

\\Server\search\File in some folder\Stack Overflow\

实际结果:

\\Server\search\File

我尝试了不同的方法来传递参数ex。将它放在单引号中,通过输入3个双引号,但它仍无效。

这是一个代码示例:

sCmd = "powershell.exe -ExecutionPolicy ByPass -noexit -File \\server\Support\abhishek\Automation\SearchUtility.ps1 -Inputs " &"'" & PathValue & "'"

我被困了好几天,我还没有办法完成这件事。我需要一些帮助。 (我是Powershell的新手)

提前致谢。

1 个答案:

答案 0 :(得分:1)

试试这个。您不需要像这样的步骤构建它。我这样做是为了让它更具可读性。最后一行是关键部分。

sCmd = "powershell.exe -ExecutionPolicy ByPass -noexit "
sCmd = sCmd & "-File \\server\Support\abhishek\Automation\SearchUtility.ps1 "
sCmd = sCmd & "-Inputs " & Chr(34) & PathValue & Chr(34)