我正在尝试从我的MSBuild脚本调用PowerShell脚本。当我将以下内容折叠成一行时,它会运行,但是当我这样离开时,我会收到以下错误。如果它很重要,我将从BAT脚本开始使用MSBuild脚本。
<Exec Command="powershell.exe -NonInteractive -ExecutionPolicy Unrestricted
-Command "& Invoke-Command
-ComputerName '$(Server)'
-ScriptBlock {
&install.ps1
-serviceName '$(ServiceName)'
-exePath '$(ExePath)'
-computerName '$(Server)'
} "
" />
' - 命令'不被识别为内部或外部命令, 可操作程序或批处理文件。
' - ComputerName'无法识别为内部或外部命令, 可操作程序或批处理文件。
' - ScriptBlock'无法识别为内部或外部命令, 可操作程序或批处理文件。
&安培;这时出人意料。
我从Microsoft documentation复制XML作为起点,我检查所有空格都是普通空格字符,我尝试在每行的末尾添加一个空格,我试着确保只有一个空格在每一行的开头,最后没有,我尝试了Windows和Unix行结束。这些都没有任何区别,所以我不确定会发生什么。
经过一些反馈后,我尝试将`
和^
添加到每行的末尾,但/>
除外,并且都不允许脚本运行。
答案 0 :(得分:0)
感谢@ PetSerAl的评论,我能够通过在每一行的末尾添加^
,并在每个双引号和&符号之前修复它:
<Exec Command="powershell.exe -NonInteractive -ExecutionPolicy Unrestricted ^
-Command ^"^& Invoke-Command
-ComputerName '$(Server)' ^
-ScriptBlock { ^
^&install.ps1 ^
-serviceName '$(ServiceName)' ^
-exePath '$(ExePath)' ^
-computerName '$(Server)' ^
} ^"
" />