我有一个批处理脚本,其中包含以下两行。

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/

10-11 17:30