5

我有多个遵循这种格式的标准文本文件,每个文件中的行数不同:

Line1
Line2
Line3
Line4

我想将每一行合并为一行,每组字符之间有一个空格,所以文本文件看起来像这样:

Line1 Line2 Line3 Line3

...等等。由于每个文本文件包含不同数量的行,这需要使用任何给定数量的行。我的意图不是合并文本文件中的行;我希望每个文本文件保持独立。我在网上找到的所有解决方案要么不太适合这个,要么只适用于 UNIX。我正在运行 Windows 7。这可以在 Powershell、VBS、Batch 中完成,一个特定的程序,没关系,它只需要与 Windows 一起工作。

非常感激!

4

6 回答 6

7
@ECHO OFF
setlocal
(SET var=)
FOR /f "delims=" %%x IN (list.txt) DO (
CALL SET var=%%var%% %%x
)
SET var=%var:~1%
echo var=%var%=

其中 list.txt 是包含您的行的文件,而 var 是您希望将行连接到其中的变量。

于 2013-03-17T09:31:20.173 回答
5

使用批处理:

for /f "usebackqdelims=" %%i in ("infile.txt") do @<nul set /p"=%%i ">>"outfile.txt"
>>"outfile.txt" echo.
于 2013-03-17T09:43:43.290 回答
4

使用 PowerShell 试一试,看看它是否是您想要的:

$my_file = "C:\file.txt"
$out_file = "C:\out.txt"
(Get-Content -Path $my_file) -join " " | Set-Content -Path $out_file
于 2013-03-17T09:29:30.180 回答
1

安装git-scm、cygwin或者其他包含bash的,然后就可以了

cat *.txt | tr "\n" " "
于 2013-03-17T09:47:05.763 回答
1

为了完整起见,这是中的另一个解决方案:

Set fso = CreateObject("Scripting.FileSystemObject")

Set infile  = fso.OpenTextFile("C:\infile.txt")
Set outfile = fso.OpenTextFile("C:\outfile.txt", 2, True)

If Not infile.AtEndOfStream Then outfile.Write infile.ReadLine
Do Until infile.AtEndOfStream
  outfile.Write " " & infile.ReadLine
Loop

infile.Close
outfile.Close
于 2013-03-17T11:02:40.743 回答
0

像这样的东西?

(gc C:\test.txt)  -join " "
于 2013-03-17T09:31:21.290 回答