我有一个批处理脚本,其中包含以下两行。
svnversion . > myversion.txt
set /p MyVersion=<myversion.txt
这样做始终没有任何问题,svnversion会用沙箱的修订版号生成一行,而下一行将该修订版号分配给环境变量。
自从几周以来,这种行为已被打破,我不知道是什么原因。我知道效果如何。
在我的系统上(并且仅在我的系统上,而不是在我的同事上),捕获文件'myversion.txt'不再是带有修订号的一行,而是两行。第一行为空白,下一行包含修订号。
如果我看一个十六进制编辑器,可以看到内容为“0d0a32 ...”。
如果我在不捕获输出的情况下运行命令,则不会产生空行。例如:
c:...>svnversion .
22837
c:...>_
如果在同事的系统上运行相同的命令,则捕获的结果中不会出现空行。我们都有相同的系统。
结果,我不能再使用该脚本来捕获svn修订版号。
问题:
-是否有人对导致捕获结果中的换行符产生什么想法?
-在批处理文件环境中还有另一种捕获svn修订版号的方法吗?
亲切的问候。
最佳答案
您可以这样尝试:
@echo off
for /f %%a in (myversion.txt) do set "MyVersion=%%a"
echo Version = %MyVersion%
关于windows - 文件重定向中的流水换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35291026/