使用停止解析从PowerShell ps1脚本运行cmd/c

使用停止解析从PowerShell ps1脚本运行cmd/c,powershell,cmd,Powershell,Cmd,我已经在这上面呆了很久了。我正在尝试从.ps1文件运行以下命令 cmd --% /c "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat" "&&" nuget restore "&&" msbuild mywebapp.sln /p:DeployOnBuild=true /p:PublishProfile=ServerFolder

我已经在这上面呆了很久了。我正在尝试从.ps1文件运行以下命令

  cmd --% /c "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat" "&&" nuget restore "&&" msbuild mywebapp.sln /p:DeployOnBuild=true /p:PublishProfile=ServerFolderProfile
但我一直得到以下错误

'C:\Program' is not recognized as an internal or external command, operable program or batch file.
我了解了如何从一个服务器的PowerShell窗口运行该命令

另外,
-->%
符号至少需要PowerShell的版本3,我运行的是版本5.1

忘掉
-%
。在要在CMD中运行的整个命令行周围加引号,并在批处理文件路径周围转义嵌套的双引号

cmd/c“`“c:\Pro…cmd.bat`&&numet restore&&msbuild mywebapp.sln/p:DeployOnBuild=true/p:PublishProfile=ServerFolderProfile”

5版超过了3个powershell级别,所以这没问题。CMD是shell的一个进程。这就像是壳牌和powershell的混合体。您到底想做什么?@ArcSet我正在尝试自动部署我的ASP.NET项目。当我将分支推送到网络上的远程repo时,git钩子(post-receive)会执行一个PowerShell脚本(包括上面的一行),该脚本构建应用程序并将其部署到文件夹中。我真正需要的是msbuild.exe来执行此操作,但当我从常规命令提示符运行它时,会出现错误,我找到的解决方案是使用Visual Studio的开发人员命令提示符。我的命令中的所有VsDevCmd.bat都设置了开发人员命令提示符将使用的一些环境变量。您是否检查了
测试路径“C:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\Common7\Tools\VsDevCmd.bat”
?@JosefZ,而这并没有解决最初的问题,使用
测试路径
确实给我带来了一个必须解决的新问题。bat文件位于我的服务器上,如果我从本地计算机上的共享文件夹运行PowerShell,则测试路径将失败,因为它正在本地计算机上查看。因此,现在我必须弄清楚如何将脚本远程发送到我的服务器中,因为当我直接在服务器上运行
测试路径时,它会通过。谢谢!工作得很有魅力。当然,现在我的脚本遇到了一些其他问题,但至少我解决了这个问题。