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