PowerShell - 使用空格传递计算路径

Jam*_*ley 10 powershell arguments

我在这里尝试一些非常简单的东西,但无法弄清楚我哪里出错了.我已经找到了许多其他有用的讨论 - 特别是在这里 - 但没有发现任何涵盖我的具体情况.

在powershell中,我输入了以下内容:

$path = "c:\program files\"
$path2 = "c:\program files\fred2\"
echoargs $path $path2
echoargs "$path" "$path2"
Run Code Online (Sandbox Code Playgroud)

在两次调用echoargs中,我得到了

Arg 0 is <c:\program files" c:\program>
Arg 1 is <files\fred2">
Run Code Online (Sandbox Code Playgroud)

回来了.如何才能正确传递参数?

注意:在我的真实脚本中,路径变量是由一些配置参数构建的,所以我不能直接用单引号传递它们.

JNK*_*JNK 18

您需要将结果字符串括在执行范围内的单引号中:

echoargs "'$path'" "'$path2'"
Run Code Online (Sandbox Code Playgroud)

这会将它们传递给在单引号内分隔的被调用应用程序,但由于整个字符串仍然是双引号,因此您的参数将被正确扩展.