从MSBuild调用PowerShell的换行符
我正在尝试从MSBuild脚本调用PowerShell脚本。当我将下面的内容折叠成一行时,它会运行,但当我像这样离开它时,我会得到下面的错误。如果这很重要,我将从BAT脚本启动MSBuild脚本从MSBuild调用PowerShell的换行符,powershell,msbuild,Powershell,Msbuild,我正在尝试从MSBuild脚本调用PowerShell脚本。当我将下面的内容折叠成一行时,它会运行,但当我像这样离开它时,我会得到下面的错误。如果这很重要,我将从BAT脚本启动MSBuild脚本 <Exec Command="powershell.exe -NonInteractive -ExecutionPolicy Unrestricted -Command "& Invoke-Command -Co
<Exec Command="powershell.exe -NonInteractive -ExecutionPolicy Unrestricted
-Command "& Invoke-Command
-ComputerName '$(Server)'
-ScriptBlock {
&install.ps1
-serviceName '$(ServiceName)'
-exePath '$(ExePath)'
-computerName '$(Server)'
} "
" />
“-Command”未被识别为内部或外部命令,
可操作的程序或批处理文件
“-ComputerName”未被识别为内部或外部命令,
可操作的程序或批处理文件
“-ScriptBlock”未被识别为内部或外部命令,
可操作的程序或批处理文件
&在这个时候是出乎意料的
我从复制XML作为起点,检查所有空格是否为纯空格字符,我尝试在每行末尾添加空格,我尝试确保每行开头只有一个空格,结尾没有空格,我尝试了Windows和Unix行结尾。所有这些都没有什么不同,所以我不确定会发生什么
在一些反馈之后,我尝试在每行末尾添加
`
和^
,除了带有/>
的那一行之外,都不允许脚本运行。感谢@PetSerAl的评论,我能够像这样修复它,在每行末尾、每行双引号和符号之前添加^
:
<Exec Command="powershell.exe -NonInteractive -ExecutionPolicy Unrestricted ^
-Command ^"^& Invoke-Command
-ComputerName '$(Server)' ^
-ScriptBlock { ^
^&install.ps1 ^
-serviceName '$(ServiceName)' ^
-exePath '$(ExePath)' ^
-computerName '$(Server)' ^
} ^"
" />
多亏@PetSerAl的评论,我能够像这样修复它,在每一行末尾、每一个双引号和符号之前添加
^
:
<Exec Command="powershell.exe -NonInteractive -ExecutionPolicy Unrestricted ^
-Command ^"^& Invoke-Command
-ComputerName '$(Server)' ^
-ScriptBlock { ^
^&install.ps1 ^
-serviceName '$(ServiceName)' ^
-exePath '$(ExePath)' ^
-computerName '$(Server)' ^
} ^"
" />
在每行末尾添加^
。@PetSerAl如果不起作用,请在之前添加额外的^
。
和之前添加额外的^
@PetSerAl!把它写下来作为答案,我会在每行末尾接受添加^
。@PetSerAl如果不起作用,请在之前添加额外的^
。“
和之前的&代码>@PetSerAl就是他干的!把它写下来作为答案,我会接受的