为什么重定向 FINDSTR 输出会产生 UNIX 行结尾?

为什么重定向 FINDSTR 输出会产生 UNIX 行结尾?

当我发出此命令时: FINDSTR /I /N "<sdk:extra>" addon.xml输出是:

973:    <sdk:extra>
995:    <sdk:extra>
1017:    <sdk:extra>
1036:    <sdk:extra>
1057:    <sdk:extra>
1078:    <sdk:extra>
1098:    <sdk:extra>
1118:    <sdk:extra>
1140:    <sdk:extra>
1161:    <sdk:extra>
1182:    <sdk:extra>
1203:    <sdk:extra>
1223:    <sdk:extra>
1244:    <sdk:extra>

但是当我使用此命令将其重定向到文件时:

FINDSTR /I /N "<sdk:extra>" addon.xml > find_s.txt

find_s.txt有 UNIX 行结尾(如果你更喜欢,可以是换行符或 EOL)。

有人知道为什么吗?我需要一个 DOS 行结尾,否则它会破坏整个批处理。

如何在 Windows 批处理中将文件从 UNIX 转换为 DOS 行尾?

(无需使用外部二进制文件或 powershell)(.js 和 .vbs 都可以)

答案1

TTT 是正确的,您的文件应该是 unix 格式。如果您不介意顺序,您可以先将输出传送到 sort。否则需要另一个实用程序。

FINDSTR /I /N "<sdk:extra>" addon.xml | sort > find_s.txt

答案2

如果你在 bat 文件中,你可以

del find_s_dos.txt
for /f "delims=" %%i in (find_s.txt) do @echo %%i>>find_s_dos.txt

相关内容