我想在PowerShell脚本中使用SVN命令。
我知道我需要将SVN可执行文件声明为变量,但之后我想提交一个我声明为变量的文件,并且我想在文件中指定我想要提交的提交消息。
$svnExe = "C:\Program Files\TortoiseSVN\bin\svn.exe"
$myFile = "C:\xx\file.txt"
$commitMsg = "C:\xx\msg.txt"
$myFile
已经是版本化文件,$commitMsg
不是,也不是版本化文件。
从命令行开始,这有效:
svn commit -F C:\xx\msg.txt C:\xx\file.txt
但是如何使用PowerShell执行此操作?
答案 0 :(得分:5)
Svn在PowerShell中的工作方式与在命令提示符中的工作方式相同。如果你定义一个带有可执行文件完整路径的变量,你需要通过call operator(&
)运行它,因为否则PowerShell会简单地回显字符串,并对其余的字符串感到困惑。命令行。
$svn = 'C:\Program Files\TortoiseSVN\bin\svn.exe'
$myFile = 'C:\xx\file.txt'
$commitMsg = 'C:\xx\msg.txt'
& $svn commit -F $commitMsg $myFile
如果将Svn目录添加到路径环境变量中,则只需直接调用可执行文件:
$env:PATH += ';C:\Program Files\TortoiseSVN\bin'
...
svn.exe commit -F $commitMsg $myFile
另一种选择是为可执行文件定义别名:
New-Alias -Name svn -Value 'C:\Program Files\TortoiseSVN\bin\svn.exe'
...
svn commit -F $commitMsg $myFile