【发布时间】:2016-02-09 11:34:45
【问题描述】:
我有一个批处理脚本,其中包含以下两行。
svnversion . > myversion.txt
set /p MyVersion=<myversion.txt
这一直没有任何问题,svnversion 生成一行包含沙箱的修订号,下一行将此修订号分配给环境变量。
自从几个星期以来,这种行为被破坏了,我不知道原因是什么。我知道效果是什么。
在我的系统上(并且仅在我的系统上,而不是在我同事的系统上),捕获文件“myversion.txt”不再是包含修订号的一行而是两行。第一行为空白,下一行包含修订号。
如果我用十六进制编辑器查看,我可以看到 '0d0a32...' 作为内容。
如果我在没有捕获输出的情况下运行命令,则不会产生空行。例如:
c:...>svnversion .
22837
c:...>_
如果我在同事的系统上运行相同的命令,则捕获的结果中不会出现空白行。我们都有相同的系统。
因此我无法再使用脚本来捕获 svn 修订号。
问题: - 有人知道是什么导致捕获结果中的换行符吗? - 在批处理文件环境中是否有另一种方法来捕获 svn 修订号?
亲切的问候。
【问题讨论】:
-
您可以在命令行和批处理文件中尝试
svnversion . | findstr /N "^"。svnversion . > myversion.txt从命令行调用它时是否也创建了两行?您是否检查过您是否只有一个版本的 svnversion 以及它是什么版本?svnversion.bat文件是否存在于任何地方? -
您可以通过
svnversion --version查看不同计算机上的版本
标签: windows shell batch-file svn