这是我的部署自动化脚本的一部分:
$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
}
Run Code Online (Sandbox Code Playgroud)
我想将$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'
单个参数(来自技术网关于 & 调用运算符):
当外部命令有很多参数或者参数或路径中有空格时,事情会变得棘手!对于空格,您必须嵌套引号,结果并不总是很清楚!
在您的情况下,您可以执行类似于该页面上建议的操作:
$SVNcommand = @('export', '-r', $SVNRevieion, "--force", $exportfile, "C:\Temp\__foo\export")
Run Code Online (Sandbox Code Playgroud)
并使用这样的所有参数调用:
&"$SVNEXE" $SVNCommand
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5559 次 |
最近记录: |