Batch file 预提交钩子。Svnlook can';找不到路径;。tmp\format";

Batch file 预提交钩子。Svnlook can';找不到路径;。tmp\format";,batch-file,svn,pre-commit-hook,svn-repository,svnlook,Batch File,Svn,Pre Commit Hook,Svn Repository,Svnlook,我制作了预提交.bat脚本,但它不能正常工作。 我希望它能够阻止在没有正确消息(“票证xxxxx”)的情况下发送提交 代码如下: set REPOS=%1 set TXN=%2 svnlook log %REPOS% -t %TXN% | findstr /r "^Ticket [0-9]{5}" > nul || echo "Follow the format [Ticket xxxxx ...]" 1>&2 && exit 1 exit 0

我制作了预提交.bat脚本,但它不能正常工作。
我希望它能够阻止在没有正确消息(“票证xxxxx”)的情况下发送提交

代码如下:

set REPOS=%1  
set TXN=%2  
svnlook log %REPOS% -t %TXN% | findstr /r "^Ticket [0-9]{5}" > nul || echo   "Follow the format [Ticket xxxxx ...]" 1>&2 && exit 1  
exit 0  
以下是我尝试承诺时得到的结果:

The hook script returned an error:  
svnlook: E720003: Can't open file 'C:\Users\EDUARD~5.LI\AppData\Local\Temp\3\svn4FA6.tmp\format': The system cannot find the path specified.    
"Follow the format [Ticket xxxxx ...]"
钩子的设置为:
工作副本路径-D:\test\testwc
要执行的命令行-D:\test\hooks\pre-commit.bat

Subversion客户端

我正在尝试提交对“D:\test\testwc\test.txt”文件的更改


提前谢谢你

我猜您正在设置客户端钩子脚本,但是
svnlook
工具是为服务器端使用而设计的;我认为
svnlog
是合适的客户端工具;或者——更好的是——使用参数
%3
(比如
设置“MESSAGEFILE=%3”
),然后使用
类型“%MESSAGEFILE%”>nul findstr/R“^Ticket[0-9][0-9][0-9][0-9][0-9][0-9]”(>&2 echo遵循[Ticket xxxxx…])退出/B1
(请参阅路径周围的引号、更正的正则表达式和更改的运算符
&
,而不是
&
)…Eduard,您得到了满意的答案吗?不,很遗憾。@DavidWhite