1

我正在尝试编写一个 .bat 脚本作为 svn 中的预提交挂钩。但是,当我尝试使用带有 -t 选项的 svnlook cat 命令时,它不起作用。它一直告诉我语法错误。我尝试了所有方法,包括添加引号、更改 -t 选项等。但是,如果我删除 -t 选项,它不会报告语法错误。所以这是错误脚本:

SET REPOS=%~1 (I want to remove the quotes of the path)
SET TXN=%2 

"C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe" cat -t %TXN% %REPOS% myworkingdir/txtIwanttoread

如果我执行以下操作,它们都很好:

SET REPOS=%~1 (I want to remove the quotes of the path)
SET TXN=%2 

"C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe" cat %REPOS% myworkingdir/txtIwanttoread

或者

SET REPOS=%~1 (I want to remove the quotes of the path)
SET TXN=%2 

"C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe" cat -r 28 %REPOS% myworkingdir/txtIwanttoread

有人请帮助我!谢谢!

别管大家,我想我只是自己想通了。我们应该使用 SET TXN=%~2 来消除引号。即使我这样做了,愚蠢的批次也会在变量 TXN 的末尾放置一个空格。这就是导致问题的原因。所以脚本应该如下所示:

SET REPOS=%~1 (I want to remove the quotes of the path)
SET TXN=%~2 
SET TXN=%TXN: =% (deblank)

"C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe" cat -t %TXN% %REPOS% myworkingdir/txtIwanttoread
4

0 回答 0