Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自windows批处理文件中远程存储库的svn head修订-系统找不到指定的文件_Windows_Batch File_Svn_Command Line - Fatal编程技术网

来自windows批处理文件中远程存储库的svn head修订-系统找不到指定的文件

来自windows批处理文件中远程存储库的svn head修订-系统找不到指定的文件,windows,batch-file,svn,command-line,Windows,Batch File,Svn,Command Line,如何在windows批处理文件中获取远程存储库的SVN修订号?我想检查一个条件,当用户输入空白,我必须得到头部修订 我使用下面的代码片段获取修订号。尽管for循环返回所有必要的信息w.r.t remote SVN server location,包括修订号。批处理文件仍然抛出 系统找不到指定的文件和变量%SVN\u VERSION% 仍然是空的 在下面提到的代码中,%SVN_PATH%指向远程服务器URL set /p "SVN_VERSION=Please specify the SVN Re

如何在windows批处理文件中获取远程存储库的SVN修订号?我想检查一个条件,当用户输入空白,我必须得到头部修订

我使用下面的代码片段获取修订号。尽管for循环返回所有必要的信息w.r.t remote SVN server location,包括修订号。批处理文件仍然抛出 系统找不到指定的文件和变量%SVN\u VERSION% 仍然是空的

在下面提到的代码中,%SVN_PATH%指向远程服务器URL

set /p "SVN_VERSION=Please specify the SVN Revision number. For HEAD revision press Enter"
    if "%SVN_VERSION%" =="" (
    for /f "delims=: tokens=1,2" %%a in ('svn info %SVN_PATH%') do (
              if "%%a"=="Revision:" (
                set /a SVN_VERSION=%%b
            )
        )
    )

谢谢

正如我在评论中提到的那样,您可以使用直接获得修订版

@echo关闭
设置/p“SVN\U版本=请指定SVN版本号。对于头部版本,请按Enter”
如果“%SVN\u VERSION%”(
对于('svnversion')中的/f%%a,请设置“SVN\U版本=%%a”
)
退出/b0
编辑

编辑

根据您的评论并尝试在脑海中猜测,如果您知道远程url,以下命令应该可以工作

@echo关闭
rem编辑远程url
set/p“remote_url=请指定SVN repo urlhttp://.....“| |后藤:EOF
设置/p“SVN\U版本=请指定SVN版本号。对于头部版本,请按Enter”
如果“%SVN\u VERSION%”(
对于/f“delims=:tokens=1,2”%%a in('svn info%remote_url%')do(
如果“%%a”==“修订”(设置SVN\U版本=%%b)
)
)
退出/b0
编辑

这也应该起作用,因为我已经看到了应该输入什么

@echo关闭
设置/p“SVN\U版本=请指定SVN版本号。对于头部版本,请按Enter”
如果“%SVN\u VERSION%”(
对于('svn信息%svn_路径%^ findstr/ic:“修订版“')中的/f“令牌=1,2”%%a,请设置svn_版本=%%b
)
退出/b0
说明:
您的错误出现在
delims=:
上,因为
不是
标记的一部分,所以比较出错。

另外,默认的delims是空格,所以不需要在这里指定delims,因为行被分成两部分。

这是什么<代码>svn信息%svn|U路径%| findstr/ic:“修订:”
您也可以直接使用1。您应该在
set/p
命令之前通过
set SVN\u VERSION=
重置变量,因为这不会清除以前的数字;2.
svn.exe
的位置是否包含在系统的
%path%
变量中,或者在哪个目录下运行脚本?@Paul:实际上,修订版是在for循环步骤中返回的,但不知何故,该值没有设置为%SVN_VERSION%variableSvversion命令如何知道如何查找特定的远程存储库?不,这不起作用,因为我需要来自远程存储库的信息。我还没有本地工作副本。%SVN\u PATH%-指向远程SVN服务器URL的用户定义变量。与您定义的变量%remote\u url%类似,删除冒号有效。真不明白我怎么会错过它。谢谢你帮我