5

この形式に従う複数の標準テキスト ファイルがあり、各ファイルの行数はさまざまです。

Line1
Line2
Line3
Line4

各文字セットの間にスペースを入れて、すべての行を 1 つにマージしたいので、テキスト ファイルは次のようになります。

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 に答える