这是我的部署自动化脚本的一部分:
$SVNEXE = "$env:ProgramFiles\TortoiseSVN\bin\svn.exe"
foreach ($element in $commandstoken) {
#$exportfile = [System.Web.HttpUtility]::UrlPathDecode($StreamServe5RepoURI + $commandstoken[$a])
$exportfile = ($StreamServe5RepoURI + $commandstoken[$a])
$SVNRevision = $commandstoken[$a+1]
[string]$SVNCommand = "export -r $SVNRevision --force"
Write-Host -ForegroundColor Red $SVNCommand
Write-Host -ForegroundColor Red $SVNCommand $exportfile
&"$SVNEXE" $SVNCommand $exportfile "C:\Temp\__foo\export"
$a = $a+2
}
我想将$SVNCommand
变量传递给 svn.exe,但 svn.exe 抛出错误:svn.exe : Unknown subcommand: 'export -r 2384 --force'
据我所知,变量扩展正在工作,所以我不明白为什么会svn.exe
抛出这个错误。
该错误
Unknown subcommand: 'export -r 2384 --force'
表明调用运算符将'export -r 2384 --force''export -r 2384 --force'
其视为单个参数(来自 & 调用运算符上的 technet):在您的情况下,您可以执行类似该页面上建议的操作:
并使用这样的所有参数调用:
我让它工作的唯一方法是将每个参数保存在一个单独的变量中:
这似乎实际上是错误执行需要引号和变量的命令实际上是不可能的