我在使用执行命令时遇到问题cmd.exe
在 PowerShell 中。问题是命令的路径中有空格。似乎是 PowerShell 的普遍问题。
以下是摘录:
$base_dir = resolve-path ..\ # this path has spaces in it
$msdeploy = $base_dir\tools\msdeploy\msdeploy.exe
cmd.exe /c $("""$msdeploy"" -verb:sync -source:....")
我需要有路径msdeploy
当脚本在持续集成过程中使用时,通过变量进行解析。
由于空格,该命令不会执行。我尝试将命令包装在""
(引用)但仍然没有运气。我该如何格式化$msdeploy
在这个例子中变量?
尝试使用 $() 调用所有内容,如下所示:
$base_dir = resolve-path ..\ # this path has spaces in it
$msdeploy = $($base_dir)\tools\msdeploy\msdeploy.exe
cmd.exe /c $("$($msdeploy) -verb:sync -source:....")
编辑:我将整个命令移至 $msdeploy 变量中,并通过转义引号来调用 $msdeploy。我发现this https://stackoverflow.com/questions/6471320/how-to-call-cmd-exe-from-powershell-with-a-space-in-the-specified-commands-dire链接有类似的问题,所以我调整了你的代码以匹配那里的工作。
$base_dir = resolve-path ..\
$msdeploy = $("`"" + $base_dir.Path + "\tools\msdeploy\msdeploy.exe`" -verb:sync -source:....")
cmd.exe /c "`"$msdeploy`""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)