我正在PowerShell中编写一个发布脚本,需要调用自定义可执行文件并将一堆参数传递给可执行文件。这些参数中很少有来自脚本中各种条件和执行的值。我看到在调用可执行文件时不会评估值。一些变量也需要作为双引号内的一系列参数传递。下面显示的是一个很好的电话
mysample.exe'-forcerebuild'' - release = $ CALC_VERSION '' - projfile = sample.proj''-buildoptions =“/ p:AllowDevDependencies = true / p:AssemblyVersion = $ CALC_ASSEMBLY_VERSION /flp:LogFile=$env:temp\build.log / p:BaseIntermediateOutputPath = $ PROJECT_BASE \ build \ / clp:nosummary“'
突出显示需要评估的所有变量。 exe期望在引用 -buildoptions =“所有构建选项”
内提供给-buildoptions的所有选项似乎没有评估这些值。但是,如果我将构建选项作为单独的变量并将其打印出来,则值似乎会得到评估。我是powershell的新手,非常感谢任何帮助。
答案 0 :(得分:4)
请注意,powershell不会在单引号字符串中进行变量扩展。例如:
$test_variable = "test"
write-host "this is a $test_variable"
write-host 'this is a $test_variable'
将打印
this is a test
this is a $test_variable
此外,powershell在将参数传递给exes方面存在问题。有Powershell Community Extensions附带的名为EchoArgs.exe
的工具包。使用它并将您的参数传递给它,以查看它们是否正常传递。